Ich suche eine einfache Möglichkeit nach Aufruf von PrintRequester() den gewählten Druckernamen auszulesen.
Vielen dank für eure Hilfe
Nach PrintRequester() gewählten Druckernamen auslesen
Re: Nach PrintRequester() gewählten Druckernamen auslesen
Ich habe dazu für Windows bereits vor 10 Jahren im englischen Forum eine Lösung präsentiert, die allerdings nicht den PrintRequester() benutzt, sondern die Windows API-Funktion PrintDlg_(), da der PrintRequester() von PureBasic leider nicht die DEVNAMES-Struktur zurückgibt, die ausgelesen werden muß. Edwin Knoppert hatte in diesem Beispiel noch einige Unzulänglichkeiten meiner Lösung behoben.
Ich habe dieses alte Beispiel gerade noch einmal unter Windows 7 x64 SP1 ausprobiert und noch den Fehler behoben, dass das Beispiel nicht im Unicode-Modus funktionierte. Das untenstehende modifizierte Beispiel habe ich erfolgreich mit PB 5.42 (x86 und x64) im ASCII- und Unicode-Modus unter Windows 7 getestet:
Ich habe dieses alte Beispiel gerade noch einmal unter Windows 7 x64 SP1 ausprobiert und noch den Fehler behoben, dass das Beispiel nicht im Unicode-Modus funktionierte. Das untenstehende modifizierte Beispiel habe ich erfolgreich mit PB 5.42 (x86 und x64) im ASCII- und Unicode-Modus unter Windows 7 getestet:
Code: Alles auswählen
PrintDlg.PRINTDLG
PrintDlg\hDevMode = 0
PrintDlg\hDevNames = 0
PrintDlg\lStructSize = SizeOf(PRINTDLG)
PrintDlg\Flags = #PD_ALLPAGES
If PrintDlg_(PrintDlg) <> #False
*DEVNAMES.DEVNAMES = GlobalLock_(PrintDlg\hDevNames)
MessageRequester("Printer Device Name", PeekS(*DEVNAMES + *DEVNAMES\wDeviceOffset * SizeOf(Character)), #MB_ICONINFORMATION)
GlobalUnlock_(PrintDlg\hDevNames)
EndIf
; Only at the end of the app
GlobalFree_(PrintDlg\hDevNames)
Re: Nach PrintRequester() gewählten Druckernamen auslesen
Super genau das habe ich gesucht.
Funktioniert auch unter Windows 10.
Danke
Funktioniert auch unter Windows 10.
Danke
