Fonte/ Codesnippets |  |  |   |   |    |  KompilierenMarkierenSeparierenIn den Programmheader die DEF Zeilen schreiben
DEF @GetProfileString(5) !kernel32,GetProfileStringA
DEF @OpenPrinter(3) !winspool.drv,OpenPrinterA
DEF @DocumentProperties(6) !winspool.drv,DocumentPropertiesA
DEF @GetPrinter(5) !winspool.drv,GetPrinterA
Proc Drucker_Orientation_Umstellen
    Parameters Orientation% 1=Hochformat, 2=Querformat
    Declare SectionName$,KeyName$,DefautString$,ReturnBuffer#,Printername$,PHANDLE#
    Declare Pdevice$,Count&,Zähler%,DevMode#,DevMode2#,Länge&
    DIM ReturnBuffer#,256
    DIM PHANDLE#,4
    Let SectionName$=Windows
    Let KeyName$=device
    DefautString$=
    @GetProfileString(@ADDR(SectionName$),@ADDR(KeyName$),@ADDR(DefautString$),ReturnBuffer#,256)
    LET Printername$=@SubStr$(@STRING$(ReturnBuffer#,0),1,,)
    @OpenPrinter(@ADDR(Printername$),PHANDLE#,0)
    LET Länge&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),0,0,0)
    DIM DevMode#,Länge&
    DIM DevMode2#,Länge&
    @DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode#,0,2)
    @DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode2#,0,2)
    Long DevMode#,40=1
    Word DevMode#,44=Orientation%
    @DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode2#,DevMode#,9)
    DELETEOBJECT @Long(PHANDLE#,0)
    Dispose ReturnBuffer#
    Dispose DevMode#
    Dispose PHANDLE#
    Dispose DevMode2#
Endproc
Drucker_Orientation_Umn  2
 ...ohne Worte |  
  |  |   |   |  |  |   |  
 
 
  |   |    | | NT-basierte Windowsversionen haben leider was gegen den Flag DM_UPDATE (wird dort nicht supportati). Ich arbeite an einer Verbesserung... |  
  |  |   |   |  |  |   |  
 
 
  |   |    | Stimmt leider - o.g. Source ändert auch noch nix.
  Also sauinteressant wäre auch das Ändern der Beidseiten-Einstellung Abb.1   
  Salve, iF    |  
 
  |  |   |   |  |  |   |  
 
 
  |   |    | Hallo IF...
  Zusatz: Ändert noch nichts unter WindowsNT/2000/XP!
  Für die Cambiamento unter 2000/NT/XP necessario man die API DrvDocumentPropertySheets - ich denke mal, damit kannst du alles ändern. Die DEVMODE Struktur auszulesen (benötigts du, um Druckereinstellungen  zu setzen) - ist kein Problem - tut der Quellcode ja schon bestens.
  Profan kann man im Hintergrund keine DEVMODE Struktur mit auf den weg geben (oder diese austauschen), um die Einstellungen der speziellen Druckseite im Hintergrund zu bestimmen. Nach STARTPRINT verläuft alles im Sand => Bernhard Künzel hatte Recht! Um mit Profan vernünftig drucken zu können, wäre es extrem von Vorteil, Profan eine DEVMODE Struktur bei Startprint optional trasferimento zu können.
  Ich versuche deshalb, die Standarteinstellungen, d.h. die standart DEVMODE Struktur, eines Druckers zu ändern. Profan liest diese bei Startprint aus und verwendet sie per den Ausdruck der Druckseite.
  Um weierzukommen, brauche ich die Werte der Konstanten der Funktion DrvDocumentPropertySheets - unter anderem PROPSHEETUI_REASON_INIT. Wo bekomme ich die weg? Wie deklariere ich die Funktion DrvDocumentPropertySheets? Ich brauche da dringend Aiuto - wer hat Lust mitzubasteln?? Anregungen und Antworten zu dem Thema bitte [...]   posten... |  
  |  |   |   |  |  |   |  
 
 
  |   |    | Hier ist Besserung. Bislang funktioniert das hier überall: KompilierenMarkierenSeparierenDEF @GetProfileString(5) !kernel32,GetProfileStringA
DEF @OpenPrinter(3) !winspool.drv,OpenPrinterA
DEF @DocumentProperties(6) !winspool.drv,DocumentPropertiesA
DEF @ClosePrinter(1) !winspool.drv,ClosePrinter
DEF @GetLastError(0) !kernel32,GetLastError
DEF @DocumentPropertiesW(6) !winspool.drv,DocumentPropertiesW
DEF &Ver_Platform_Win32_Windows 1
DEF &Ver_Platform_Win32_NT 2
Struct OSVERSIONINFO = dwOSVersionInfoSize&,dwMajorVersion&,dwMinorVersion&,dwBuildNumber&,dwPlatformId&,szCSDVersion$(128)
Proc Drucker_Orientation_Umstellen
    Parameters Orientation% 1=Hochformat, 2=Querformat
    Declare WINVER&,OS#
    Declare SectionName$,KeyName$,DefautString$,ReturnBuffer#,Printername$,PHANDLE#,Länge2&
    Declare Pdevice$,Count&,Länge&,DevMode#,DevMode2#,Länge&,Fehler&,Offset&,Zähler&
    Declare Found%,Länge2&,Vergleich&
    Declare count#,Pointer_TO_DEVMODE&
    Dim OS#,OSVERSIONINFO
    OS#.dwOSVersionInfoSize& = 148
    External(Kernel32,GetVersionExA,OS#)
    LET Winver& = 8
    If OS#.dwPlatformId& = &Ver_Platform_Win32_Windows
        If OS#.dwMajorVersion& = 4
            Case OS#.dwMinorVersion& = 0  : Winver& = 1
            Case OS#.dwMinorVersion& = 10 : Winver& = 2
            Case OS#.dwMinorVersion& = 90 : Winver& = 3
        Endif
    ElseIf OS#.dwPlatformId& = &Ver_Platform_Win32_NT
        Case OS#.dwMajorVersion& = 3 : Winver& = 4
        Case OS#.dwMajorVersion& = 4 : Winver& = 5
        Case OS#.dwMajorVersion& = 5 : Winver& = 6
        Case OS#.dwMinorVersion& = 1 : Winver& = 7
    Endif
    Dispose OS#
    DIM ReturnBuffer#,256
    Addstring Ausrichtung soll auf +@STR$(Orientation%)+ gesetzt werden!
    Let SectionName$=Windows
    Let KeyName$=device
    DefautString$=
    @GetProfileString(@ADDR(SectionName$),@ADDR(KeyName$),@ADDR(DefautString$),ReturnBuffer#,256)
    LET Printername$=@SubStr$(@STRING$(ReturnBuffer#,0),1,,)
    Addstring Aus WIN.INI ausgelesener Standarddrucker: +Printername$
    Dispose ReturnBuffer#
    LET Pdevice$=
    IF WinVer&<6
        DIM PHANDLE#,4
        LET Fehler&=@OpenPrinter(@ADDR(Printername$),PHANDLE#,0)
        Addstring Fehlercode OpenPrinter: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET Länge&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),0,0,0)
        Addstring Länge der DEVMODE Struktur: +@STR$(Länge&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        DIM DevMode#,Länge&
        DIM DevMode2#,Länge&
        LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode#,0,2)
        Addstring Rückgabe von DocumentProperties beim Auslesen der Struktur: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode2#,0,2)
        Addstring Rückgabe von DocumentProperties beim Auslesen der Struktur: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET Fehler&=@Word(DevMode#,44)
        Addstring Alte Ausgelesene Ausrichtung: +@STR$(Fehler&)
        Long DevMode#,40=1
        Word DevMode#,44=Orientation%
        LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode#,DevMode#,8 | 2 | 1)
        Addstring Rückgabe von DocumentProperties beim Setzen der Eigenschaft: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        Let Fehler&=@ClosePrinter(@Long(PHANDLE#,0))
        Addstring Rückgabe von ClosePrinter: +@STR$(Fehler&)
        LET Fehler&=@OpenPrinter(@ADDR(Printername$),PHANDLE#,0)
        Addstring Fehlercode OpenPrinter: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode2#,0,2)
        Addstring Rückgabe von DocumentProperties beim Auslesen der Struktur: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET Fehler&=@Word(DevMode#,44)
        Addstring Neue Ausgelesene Ausrichtung: +@STR$(Fehler&)
        Let Fehler&=@ClosePrinter(@Long(PHANDLE#,0))
        Addstring Rückgabe von ClosePrinter: +@STR$(Fehler&)
        Dispose DevMode#
        Dispose PHANDLE#
        Dispose DevMode2#
    Else
        DIM PHANDLE#,4
        LET Fehler&=@OpenPrinter(@ADDR(Printername$),PHANDLE#,0)
        Addstring Fehlercode OpenPrinter: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET Länge2&=@DocumentPropertiesW(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),0,0,0)
        Addstring Länge der DEVMODE Struktur: +@STR$(Länge2&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        DIM DevMode#,Länge2&+256
        LET FEHLER&=@DocumentPropertiesW(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode#,0,2)
        Addstring Rückgabe von DocumentProperties beim Auslesen der Struktur: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        DISPOSE DevMode2#
        DIM DevMode2#,10001
        Let Fehler&=@ClosePrinter(@Long(PHANDLE#,0))
        Addstring Rückgabe von ClosePrinter: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzter API vor dem Auslesen von DEVMODE: +@STR$(Fehler&)
        SHELL rundll32 printui.dll,PrintUIEntry /Ss /n +CHR$(34)+Printername$+CHR$(34)+ /a +CHR$(34)+C:PDEVMODE.DAT+CHR$(34)+ u
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzter API nach dem Auslesen von DEVMODE: +@STR$(Fehler&)
        SLeep 1000
        ASSIGN #1,C:PDEVMODE.DAT
        OpenRW #1
        LET Länge&=@BlockRead(#1,DevMode2#,0,10000)
        CloseRW #1
        Addstring Länge der Datei: +@STR$(Länge&)
        LET OFFSET&=0
        LET FOUND%=1
        LET Zähler&=0
        While @AND(Found%=1,OFFSET&<(Länge&-72))
            Let FOUND%=0
            While @AND(Found%=0,Zähler&<70)
                LET VERGLEICH&=Offset&+Zähler&
                LET FOUND%=0
                IF @BYTE(DevMode#,Zähler&)<>@Byte(DevMode2#,VERGLEICH&)
                    LET Found%=1
                endif
                LET Zähler&=Zähler&+1
            WEND
            if Zähler&<70
                LET FOUND%=1
                LET ZÄHLER&=0
                LET OFFSET&=OFFSET&+1
            else
                LET FOUND%=10
                LET ZÄHLER&=0
            Endif
        WEND
        IF FOUND%<>10
            Addstring Offset konnte nicht ermittelt werden!
            ASSIGN #2,C:PDEVMODE2.DAT
            OPENRW #2
            BlockWrite #2,DevMode#,0,Länge2&
            CLOSERW #2
        Else
            Addstring Offset liegt bei: +@STR$(OFFSET&)
            LET VERGLEICH&=OFFSET&+44+32
            Addstring Alte Ausgelesene Ausrichtung: +@STR$(@WORD(DevMode2#,Vergleich&))
            IF @or(@WORD(DevMode2#,Vergleich&)=1,@WORD(DevMode2#,Vergleich&)=2)
                WORD DevMode2#,VERGLEICH&=Orientation%
                OPENRW #1
                BlockWrite #1,DevMode2#,0,Länge&
                CloseRW #1
                Sleep 1000
                Let Fehler&=@GetLastError()
                Addstring Fehlercode letzter API vor dem Setzen von DEVMODE: +@STR$(Fehler&)
                SHELL rundll32 printui.dll,PrintUIEntry /Sr /n +CHR$(34)+Printername$+CHR$(34)+ /a +CHR$(34)+C:PDEVMODE.DAT+CHR$(34)+ u
                Let Fehler&=@GetLastError()
                Addstring Fehlercode letzter API nach dem Setzen von DEVMODE: +@STR$(Fehler&)
                Sleep 1000
                ERASE #1
            else
                Addstring Devmode Offset nicht gefunden!
            endif
        endif
        LET Fehler&=@OpenPrinter(@ADDR(Printername$),PHANDLE#,0)
        Addstring Fehlercode OpenPrinter: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode2#,0,2)
        Addstring Rückgabe von DocumentProperties beim Auslesen der Struktur: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET Fehler&=@Word(DevMode2#,44)
        Addstring Neue Ausgelesene Ausrichtung: +@STR$(Fehler&)
        Let Fehler&=@ClosePrinter(@Long(PHANDLE#,0))
        Addstring Rückgabe von ClosePrinter: +@STR$(Fehler&)
        Dispose PHANDLE#
        Dispose DevMode2#
        Dispose DevMode#
    ENDIF
Endproc
Drucker_Orientation_Umstellen 2 class=s4 href='./../../function-references/xprofan/editbox/'>EDitBox(Ruckgaben,1)
 An einer Druck PCU wird an anderer Stelle bereits gearbeitet... |  
  |  |   |   |  |  |   |  
 
 
  |   |    CB |  |  |   |   |  |  |   |  
 
 
  |   |    | Die PRINTUI.DLL liest die DEVMODE Struktur aus der Registry aus. Dieser Key wird aber nur erzeugt, wenn die Ausrichtung ein Mal per Hand auf Querformat umgestellt wurde. Ich will hoffen, daß das mein letzter Quelltext zu diesem Thema wird: KompilierenMarkierenSeparierenDEF @GetProfileString(5) !kernel32,GetProfileStringA
DEF @OpenPrinter(3) !winspool.drv,OpenPrinterA
DEF @DocumentProperties(6) !winspool.drv,DocumentPropertiesA
DEF @ClosePrinter(1) !winspool.drv,ClosePrinter
DEF @GetLastError(0) !kernel32,GetLastError
DEF @DocumentPropertiesW(6) !winspool.drv,DocumentPropertiesW
DEF @RegCREATEKEY(3)!ADVAPI32,RegCreateKeyA Schlüssel erstellen
def @RegSetValueEx(6) !ADVAPI32,RegSetValueExA
def @RegCloseKey(1) !ADVAPI32,RegCloseKey
DEF &Ver_Platform_Win32_Windows 1
DEF &Ver_Platform_Win32_NT 2
Struct OSVERSIONINFO = dwOSVersionInfoSize&,dwMajorVersion&,dwMinorVersion&,dwBuildNumber&,dwPlatformId&,szCSDVersion$(128)
Proc Drucker_Orientation_Umstellen
    Parameters Orientation% 1=Hochformat, 2=Querformat
    Declare WINVER&,OS#
    Declare SectionName$,KeyName$,DefautString$,ReturnBuffer#,Printername$,PHANDLE#,Länge2&
    Declare Pdevice$,Count&,Länge&,DevMode#,DevMode2#,Länge&,Fehler&,Offset&,Zähler&
    Declare Found%,Länge2&,Vergleich&,SubKey$
    Declare count#,Pointer_TO_DEVMODE&,Handle#
    Dim OS#,OSVERSIONINFO
    OS#.dwOSVersionInfoSize& = 148
    External(Kernel32,GetVersionExA,OS#)
    LET Winver& = 8
    If OS#.dwPlatformId& = &Ver_Platform_Win32_Windows
        If OS#.dwMajorVersion& = 4
            Case OS#.dwMinorVersion& = 0  : Winver& = 1
            Case OS#.dwMinorVersion& = 10 : Winver& = 2
            Case OS#.dwMinorVersion& = 90 : Winver& = 3
        Endif
    ElseIf OS#.dwPlatformId& = &Ver_Platform_Win32_NT
        Case OS#.dwMajorVersion& = 3 : Winver& = 4
        Case OS#.dwMajorVersion& = 4 : Winver& = 5
        Case OS#.dwMajorVersion& = 5 : Winver& = 6
        Case OS#.dwMinorVersion& = 1 : Winver& = 7
    Endif
    Dispose OS#
    DIM ReturnBuffer#,256
    Addstring Ausrichtung soll auf +@STR$(Orientation%)+ gesetzt werden!
    Let SectionName$=Windows
    Let KeyName$=device
    DefautString$=
    @GetProfileString(@ADDR(SectionName$),@ADDR(KeyName$),@ADDR(DefautString$),ReturnBuffer#,256)
    LET Printername$=@SubStr$(@STRING$(ReturnBuffer#,0),1,,)
    Addstring Aus WIN.INI ausgelesener Standarddrucker: +Printername$
    Dispose ReturnBuffer#
    LET Pdevice$=
    IF WinVer&<6
        DIM PHANDLE#,4
        LET Fehler&=@OpenPrinter(@ADDR(Printername$),PHANDLE#,0)
        Addstring Fehlercode OpenPrinter: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET Länge&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),0,0,0)
        Addstring Länge der DEVMODE Struktur: +@STR$(Länge&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        DIM DevMode#,Länge&
        DIM DevMode2#,Länge&
        LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode#,0,2)
        Addstring Rückgabe von DocumentProperties beim Auslesen der Struktur: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode2#,0,2)
        Addstring Rückgabe von DocumentProperties beim Auslesen der Struktur: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET Fehler&=@Word(DevMode#,44)
        Addstring Alte Ausgelesene Ausrichtung: +@STR$(Fehler&)
        Long DevMode#,40=1
        Word DevMode#,44=Orientation%
        LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode#,DevMode#,8 | 2 | 1)
        Addstring Rückgabe von DocumentProperties beim Setzen der Eigenschaft: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        Let Fehler&=@ClosePrinter(@Long(PHANDLE#,0))
        Addstring Rückgabe von ClosePrinter: +@STR$(Fehler&)
        LET Fehler&=@OpenPrinter(@ADDR(Printername$),PHANDLE#,0)
        Addstring Fehlercode OpenPrinter: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode2#,0,2)
        Addstring Rückgabe von DocumentProperties beim Auslesen der Struktur: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET Fehler&=@Word(DevMode#,44)
        Addstring Neue Ausgelesene Ausrichtung: +@STR$(Fehler&)
        Let Fehler&=@ClosePrinter(@Long(PHANDLE#,0))
        Addstring Rückgabe von ClosePrinter: +@STR$(Fehler&)
        Dispose DevMode#
        Dispose PHANDLE#
        Dispose DevMode2#
    Else
        DIM PHANDLE#,4
        LET Fehler&=@OpenPrinter(@ADDR(Printername$),PHANDLE#,0)
        Addstring Fehlercode OpenPrinter: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET Länge2&=@DocumentPropertiesW(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),0,0,0)
        Addstring Länge der DEVMODE Struktur: +@STR$(Länge2&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        DIM DevMode#,Länge2&
        LET FEHLER&=@DocumentPropertiesW(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode#,0,2)
        Addstring Rückgabe von DocumentProperties beim Auslesen der Struktur: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET Fehler&=@Word(DevMode#,44+32)
        Addstring Alte Ausgelesene Ausrichtung: +@STR$(Fehler&)
        DIM DevMode2#,Länge2&
        Let Fehler&=@ClosePrinter(@Long(PHANDLE#,0))
        Addstring Rückgabe von ClosePrinter: +@STR$(Fehler&)
        WORD DEVMODE#,44+32=Orientation%
        Dim Handle#,4
        LET SubKey$=PrintersDevModePerUser
        @RegCREATEKEY($80000001,@addr(SubKey$),Handle#)
        @RegSetValueEx(@LONG(Handle#,0),@ADDR(Printername$),0,3,DEVMODE#,Länge2&)
        @RegCloseKey(@LONG(Handle#,0))
        LET SubKey$=PrintersDevModes2
        @RegCREATEKEY($80000001,@addr(SubKey$),Handle#)
        @RegSetValueEx(@LONG(Handle#,0),@ADDR(Printername$),0,3,DEVMODE#,Länge2&)
        @RegCloseKey(@LONG(Handle#,0))
        Dispose Handle#
        @Sendmessage($FFFF,$001A,0,0)
        @Sendmessage($FFFF,$001B,0,0)
        LET Fehler&=@OpenPrinter(@ADDR(Printername$),PHANDLE#,0)
        Addstring Fehlercode OpenPrinter: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET FEHLER&=@DocumentPropertiesW(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode2#,0,2)
        Addstring Rückgabe von DocumentProperties beim Auslesen der Struktur: +@STR$(Fehler&)
        Let Fehler&=@GetLastError()
        Addstring Fehlercode letzte API: +@STR$(Fehler&)
        LET Fehler&=@Word(DevMode2#,44+32)
        Addstring Neue Ausgelesene Ausrichtung: +@STR$(Fehler&)
        Let Fehler&=@ClosePrinter(@Long(PHANDLE#,0))
        Addstring Rückgabe von ClosePrinter: +@STR$(Fehler&)
        Dispose PHANDLE#
        Dispose DevMode2#
        Dispose DevMode#
    ENDIF
Endproc
Drucker_Orientation_Umstellen 2
@E(Ruckgaben, 1)
 Vielen Dank an alle fleißigen Tester (es waren eine ganze Menge)... |  
  |  |   |   |  |  |   |  
 
 
  |   |    | 
 Ausrichtung soll auf 1 gesetzt werden! Aus WIN.INI ausgelesener Standarddrucker: Phaser 8400DP-2 Fehlercode OpenPrinter: 1 Fehlercode letzte API: 0 Länge der DEVMODE Struktur: 2576 Fehlercode letzte API: 6 Rückgabe von DocumentProperties beim Auslesen der Struktur: 1 Fehlercode letzte API: 122 Alte Ausgelesene Ausrichtung: 2 Rückgabe von ClosePrinter: 1 Fehlercode OpenPrinter: 1 Fehlercode letzte API: 0 Rückgabe von DocumentProperties beim Auslesen der Struktur: 1 Fehlercode letzte API: 122 Neue Ausgelesene Ausrichtung: 1 Rückgabe von ClosePrinter: 1
  
 
 
  Ausrichtung soll auf 2 gesetzt werden! Aus WIN.INI ausgelesener Standarddrucker: Phaser 8400DP-2 Fehlercode OpenPrinter: 1 Fehlercode letzte API: 0 Länge der DEVMODE Struktur: 2576 Fehlercode letzte API: 6 Rückgabe von DocumentProperties beim Auslesen der Struktur: 1 Fehlercode letzte API: 122 Alte Ausgelesene Ausrichtung: 1 Rückgabe von ClosePrinter: 1 Fehlercode OpenPrinter: 1 Fehlercode letzte API: 0 Rückgabe von DocumentProperties beim Auslesen der Struktur: 1 Fehlercode letzte API: 122 Neue Ausgelesene Ausrichtung: 2 Rückgabe von ClosePrinter: 1
  Superb, iF |  
  |  |   |   |  |  |   |  
 
 
  |  
 Zum QuelltextThemeninformationenDieses Thema hat 3 subscriber:  |