Drucken mit AppData
lima-city → Forum → Programmiersprachen → Basic
abfrage
aufrufen
bild
code
datei
druck
erstellen
http
inklusive inhalt
nutzer
ordner
pfad
problem
programm
rufen
sache
system
url
verzeichnis
windows
-
Hallo Zusammen,
Ich stehe derzeit vor einem Problem.
Ich möchte in meinen Programm den Nutzer gerne die Möglichkeit geben "das Programm" auszudrucken.
Derzeit wird es noch über einen Button gesteuert , wird aber Später in die Menüleiste Integriert.
Ich bin derzeit bei dem Punkt das ein Screenshot , nur vom Porgamm erstellt wird und dieser auch Speicherbar ist als .png.
Private Sub print_Click(sender As System.Object, e As System.EventArgs) Handles print.Click Dim scr As Bitmap Dim w As Integer = Me.Width Dim h As Integer = Me.Height SaveFileDialog1.Filter = "Images|.png" scr = New Bitmap(w, h) Me.DrawToBitmap(scr, Rectangle.FromLTRB(0, 0, w, h)) SaveFileDialog1.ShowDialog() If SaveFileDialog1.FileName = "" Then SaveFileDialog1.FileName = "Rechner.png" Else scr.Save(SaveFileDialog1.FileName) PrintDialog1.ShowDialog() End If End Sub
Nun möchte ich aber das der Nutzer nicht die möglichkeit hat das Bild selber zu Speichern unter einem Pfad und Namen , sonder das Bild soll unter %appdata%/Umrechner als Dateiname print.png gespeichert werden.
Nun tauchen die ersten Probleme auf:
-Wie kann ich den Ordner in AppData erstellen?
-Wie mche ich es das er es direkt dort Speichert , ohne eine SveFileDialog abfrage?
-Wie rufe ich diese Datei Später beim Drucken auf?
-Wie kann ich den Ordner inklusive Inhalt nach dem Drucken wieder löschen?
LG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Basic kann ich leider nicht, aber zu %APPDATA% kann ich ein paar Sachen sagen:
Es handelt sich um eine Systemvariable die auf das AppData/Roaming Verzeichnis zeigt. Ich würde mal suchen ob du irgendwo in Basic Systemvariablen aufrufen kannst und dann kannst du den Pfad erzeugen.
Vieleicht reicht ja auch schon der Pfad aufs Home-Verzeichnis (Ab Vista normalerweise: C:\Users\<Username>)
In deinem Programm musst du dir halt den gesamten Pfad zur Datei halten. Dann kannst du ihn sicher auch zum Drucken verwenden.
Vieleicht hilft dir das Verzeichnis %TEMP% auch weiter. In meinen Java-Programmen leg ich temporäre Sachen (Grafiken, Dokumente, etc.) da drin ab. -
marvinkleinmusic schrieb:
-Wie kann ich den Ordner in AppData erstellen?
-Wie mche ich es das er es direkt dort Speichert , ohne eine SveFileDialog abfrage?
-Wie rufe ich diese Datei Später beim Drucken auf?
-Wie kann ich den Ordner inklusive Inhalt nach dem Drucken wieder löschen?
Bin zwar auch kein wirklicher VB-Fuzzi, aber die Windows-API lässt sich Gott sei Dank aus allen gängigen Programmiersprachen gleichermaßen aufrufen
Anfangen würde ich damit, den gesamten Pfad für "AppData" zu bekommen, was sich mit Funktionsaufrufen in der Windows-API bewerkstelligen lässt:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724373%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/bb762181%28v=vs.85%29.aspx
Damit lassen sich sämtliche Windows-spezifischen Pfade auslesen, siehe hier:
http://p-s-soft.at/delphi/images/06_content_systempaths_screenshots_syspaths_xp.jpg
Ordner erstellen sollte auch kein Problem darstellen:
http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.filesystem.createdirectory.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
Angenommen, du willst einen Unterordner "MeinProgramm" erstellen, dann hängst du einfach an den AppData-Pfad, den du mit den Funktionen von vorhin rausbekommst einfach den String "MeinProgramm\" an, und rufst damit CreateDirectory auf.
Wenn Du damit auch weißt, wo du das hinspeichern willst, benötigst du auch den SaveFileDialog nicht mehr.
Wie man mit VB druckt lässt sich sicher auch unter Zuhilfenahme einer Suchmaschine rausfinden.
Aufräumen wirst du dann auch mit div. Funktionsaufrufen, siehe hier -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage