Hallo,
ich habe vor längerer Zeit mal eine Funktion geschrieben, die vom Hauptfenster meines Programms ein Screenshot macht, es an den Drucker sendet und dann ein zweites Fenster im Programm aufruft, ebenfalls ein Screenshot macht und es dann auch an den Drucker sendet.
So werden auf einem Blatt hochkannt zwei Screenshots der Fenster des Programms gedruckt. Eins auf der oberen Hälfte des Blattes und eins auf der unteren Hälfte des Blattes.
Das funktioniert auch eigentlich ohne Probleme, außer bei einem PC in der Firma, auf dem das Betriebssystem Windows Vista installiert ist.
Dort wird nur der obere Teil auf das Blatt gedruckt, also das Hauptfenster des Programms.
Als ich dann das Bild testweise in einer Imagebox zwischengespeichert habe, funktionierte es wieder bei allen PCs außer beim Vista Rechner. Dort wurde der Laufzeitfehler 481: Ungültiges Bild ausgegeben.
Hier einmal der Code der Funktion, die fürs Screenshot machen und Drucken zuständig ist:
Ich hoffe ihr könnt mir irgendwie weiterhelfen, und falls ihr mir jetzt damit kommt, dass Vista das Problem ist, dann glaub ich das gerne ^^. Jedoch ist leider ausgerechnet der Vista Rechner der PC vom Chef und ich denke, dass er sich nicht damit zufrieden geben wird, dass das Betriebssystem einfach Mist ist
.
Also ich danke schonmal jetzt für jede Antwort.
Grüße
Blace
ich habe vor längerer Zeit mal eine Funktion geschrieben, die vom Hauptfenster meines Programms ein Screenshot macht, es an den Drucker sendet und dann ein zweites Fenster im Programm aufruft, ebenfalls ein Screenshot macht und es dann auch an den Drucker sendet.
So werden auf einem Blatt hochkannt zwei Screenshots der Fenster des Programms gedruckt. Eins auf der oberen Hälfte des Blattes und eins auf der unteren Hälfte des Blattes.
Das funktioniert auch eigentlich ohne Probleme, außer bei einem PC in der Firma, auf dem das Betriebssystem Windows Vista installiert ist.
Dort wird nur der obere Teil auf das Blatt gedruckt, also das Hauptfenster des Programms.
Als ich dann das Bild testweise in einer Imagebox zwischengespeichert habe, funktionierte es wieder bei allen PCs außer beim Vista Rechner. Dort wurde der Laufzeitfehler 481: Ungültiges Bild ausgegeben.
Hier einmal der Code der Funktion, die fürs Screenshot machen und Drucken zuständig ist:
Code:
Private Sub drucke_hochformat()
Detail_Name = Data1.Recordset.Fields("Name")
Detail_Vorname = Data1.Recordset.Fields("Vorname")
Detail_Chiffre_Nr = Data1.Recordset.Fields("Chiffre-Nr")
If IsNull(Detail_Name) Then
Detail_Name = ""
End If
If IsNull(Detail_Vorname) Then
Detail_Vorname = ""
End If
If IsNull(Detail_Chiffre_Nr) Then
Detail_Chiffre_Nr = ""
End If
frmDetail.Text5.Text = Detail_Name
frmDetail.Text6.Text = Detail_Vorname
frmDetail.Text7.Text = Detail_Chiffre_Nr
frmDetail.Test = txtID.Text
'SQL = "SELECT * FROM Detail WHERE Detail.`ID` = '" & frmDetail.Test & "'ORDER BY Datum DESC"
SQL = "SELECT * FROM Detail WHERE Detail.`IDNR` = " & frmDetail.Test & " ORDER BY Datum DESC"
frmDetail.Data2.RecordSource = SQL
frmDetail.Data2.Refresh
frmDetail.Refresh
frmDetail.Show
frmDetail.Hide
form_farbe_aendern frmAIS, &HFFFFFF
form_farbe_aendern frmDetail, &HFFFFFF
Const KEYEVENTF_KEYUP = &H2
Const VK_MENU = &H12
Const VK_SNAPSHOT = &H2C
HideTaskbar
frmAIS.Show
DoEvents
keybd_event VK_MENU, 0, 0, 0
keybd_event VK_SNAPSHOT, 0, 0, 0
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
DoEvents
ShowTaskbar
Dim OldScaleMode As Integer
OldScaleMode = Printer.ScaleMode
Printer.Orientation = Hochformat
Printer.ScaleMode = 7
Printer.PaintPicture Clipboard.GetData, 3, 0, 16, 14
DoEvents
Clipboard.Clear
frmDetail.Show
frmDetail.Refresh
DoEvents
keybd_event VK_MENU, 0, 0, 0
keybd_event VK_SNAPSHOT, 0, 0, 0
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
DoEvents
Printer.PaintPicture Clipboard.GetData, 3, 16, 16, 12
Printer.EndDoc
DoEvents
Printer.ScaleMode = OldScaleMode
form_farbe_aendern frmAIS, &H8000000F
form_farbe_aendern frmDetail, &H8000000F
frmDetail.Hide
Unload frmDetail
End Sub
Ich hoffe ihr könnt mir irgendwie weiterhelfen, und falls ihr mir jetzt damit kommt, dass Vista das Problem ist, dann glaub ich das gerne ^^. Jedoch ist leider ausgerechnet der Vista Rechner der PC vom Chef und ich denke, dass er sich nicht damit zufrieden geben wird, dass das Betriebssystem einfach Mist ist

Also ich danke schonmal jetzt für jede Antwort.
Grüße
Blace