Italia
Fonte/ Codesnippets

Querformat Standartdrucker Umstellen

 

KompilierenMarkierenSeparieren
In 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_Um
n 2

...ohne Worte
 
13.01.2005  
 



NT-basierte Windowsversionen haben leider was gegen den Flag DM_UPDATE (wird dort nicht supportati). Ich arbeite an einer Verbesserung...
 
18.01.2005  
 



Stimmt leider - o.g. Source ändert auch noch nix.

Also sauinteressant wäre auch das Ändern der Beidseiten-Einstellung Abb.1

Salve, iF

13 kB
Kurzbeschreibung: Abb.1
Hochgeladen:18.01.2005
Downloadcounter619
Download
 
18.01.2005  
 



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...
 
18.01.2005  
 



Hier ist Besserung. Bislang funktioniert das hier überall:
KompilierenMarkierenSeparieren
DEF @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...
 
27.01.2005  
 




CB
Rückgabe bei meinem Heim-Netzwerk (WLAN mit im Router integrierten Printserver):
KompilierenMarkierenSeparieren
Saluto,
Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
27.01.2005  
 



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:
KompilierenMarkierenSeparieren
DEF @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)...
 
30.01.2005  
 




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
 
30.01.2005  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

6.754 Views

Untitledvor 0 min.
Axel Berse27.07.2022
rquindt24.04.2020
Manfred Barei26.07.2015
Muemmelmann24.09.2014
Di più...

Themeninformationen

Dieses Thema hat 3 subscriber:

unbekannt (6x)
CB (1x)
iF (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie