Druckeinstellungen Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Thomas V

Druckeinstellungen

02 Mar 2018, 09:00

Hallo!

Gibt es eine Möglichkeit, die Druckeinstellungen des Standarddruckers aufzurufen?

Danke für eure Hilfe!
User avatar
jNizM
Posts: 3183
Joined: 30 Sep 2013, 01:33
Contact:

Re: Druckeinstellungen

02 Mar 2018, 09:33

Mit GetPrinter function kannst du dir die Druckeinstellungen holen.
Würde dir gerne die Funktion in AHK übersetzen, nur ist es Zeit bedingt bei mir ein bisschen mau.
[AHK] v2.0.5 | [WIN] 11 Pro (Version 22H2) | [GitHub] Profile
just me
Posts: 9449
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Druckeinstellungen  Topic is solved

03 Mar 2018, 02:36

Moin,

zu welchem Zweck willst Du einen Einstellungsdialog aufrufen?
Thomas V

Re: Druckeinstellungen

05 Mar 2018, 06:31

just me wrote:Moin,

zu welchem Zweck willst Du einen Einstellungsdialog aufrufen?
Naja, eigentlich geht es mir darum, dass ich beim Standarddrucker die Papierquelle von "automat. Quellenauswahl" auf "Universalzufuhr" ändern möchte. Wenn das nicht möglich ist, möchte ich mir zumindest ein paar Schritte ersparen und direkt zum Dialog kommen, wo ich die Einstellung selbst ändern kann.
just me
Posts: 9449
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Druckeinstellungen

06 Mar 2018, 03:56

Es ist 'relativ einfach', den Dialog "Seite einrichten" aufzurufen. Es mag aber sein, dass Änderungen in diesem Dialog nur für das aufrufende Programm wirksam sind.

Code: Select all

#NoEnv
Result := PageSetupDlg()
MsgBox, 0, Result, %Result%
ExitApp
; ================================================================================================================================
; Page Setup Dialog Box
; msdn.microsoft.com/en-us/library/windows/desktop/ms646962(v=vs.85).aspx
; ================================================================================================================================
PageSetupDlg() {
   Static PSD_DISABLEPRINTER := 0x00000020
        , PSD_Size := (4 * 10) + (A_PtrSize * 11)
        , OffFlags := 4 * A_PtrSize
   VarSetCapacity(PSD, PSD_Size, 0)                   ; PAGESETUPDLG structure
   NumPut(PSD_Size, PSD, 0, "UInt")                   ; lStructSize
   NumPut(A_ScriptHwnd, PSD, A_PtrSize, "UPtr")       ; hwndOwner
   NumPut(PSD_DISABLEPRINTER, PSD, OffFlags, "Int")   ; Flags
   If !DllCall("Comdlg32.dll\PageSetupDlg", "Ptr", &PSD, "UInt")
      Return False
   DllCall("Kernel32.dll\GobalFree", "Ptr", NumGet(PSD, 2 * A_PtrSize, "UPtr"))
   DllCall("Kernel32.dll\GobalFree", "Ptr", NumGet(PSD, 3 * A_PtrSize, "UPtr"))
   Return True
}

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 21 guests