Français
Forum

Netzwerk?

 
- page 1 -


allô alle zusammmen...

j'ai keinen blassen Schimmer de Netzwerken et habe aussi keins, avec dem je la fois herumexperimentieren peux. c'est pourquoi folgende Fragen:

- peux chacun, qui à dem Netzwerk angeschlossen ist, qui Druckeigenschaften verändern (z.B. de Hochformat sur Querformat se mettre), ou bien peux on cela seulement de dem calculateur aus, à dem qui Drucker angeschlossen ist? (betriebssystem important...)

- quelle Privilegien gelten, si je dans einem Netzwerk sur einem anderen ordinateur Systemspezifische Sachen effectuer veux (RegConnectRegistry, RegLoadKey, RegSaveKey)???
 
16.01.2005  
 



 
- page 3 -



CB
Halllo Andreas,

Freut mich, qui Euch mon Tip comme (qui kam überdies de meinem frère) - qui DAS pas gelesen hat, hat sans équivoque une Bildungslücke...

trop Deinem projet: cela klingt très intéressant - pour uns alle!
Stehe Dir volontiers comme NT-Tester zur Disposition - évident suis je dzt. qui einzige, qui so un Netzwerk zur Disposition hat.
si cela pour toi important ist: genaugenommen habe je mich avec meinem privaten PC sur une Switch à une NT-Workstation angehängt, am XP-calculateur hängt ensuite mon Printer - je peux alors comparer, comment sich Dein Programme sur beiden verhält.
qu'est-ce qu'il ne faut pas faire alles pour une guten Zweck! je serait mir mais quelque chose leichter dabei 1faire, si Du mir den trop testenden Code per email envoyons würdest.
qui NT-Workstation hängt malheureusement pas im Internet, je peux mais qui email sur mon Handy herunterladen, cela Attachment sur une SD-carte Sauver et ensuite sur cette PC einspielen. c'est zwar compliqué, je erspare mir dabei mais un paire weitere Schritte (Herunterladen des Codes vom Firmen-PC, comme email-Attachment sur mon Mailbox envoyons).
Salut,
Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
22.01.2005  
 



allô Christian...

Einen NT-Tester pour cela projet peux je toujours gebrauchen.
j'ai dir la fois den Voir le texte source zum Testen sous XP à deine Mailadresse envoyé.
Pour meiner Nachtschicht Poste je ici nochmals une Voir le texte source, qui den Flag DM_UPDATE aussi sous WindowsNT mets. peut-être gibts cette undokumentierten Flag oui seulement ab 2000 pas plus.

dans qui prochain semaine venons ensuite un paire (encore pas funtionierende) Anfänge avec Setprinter hinzu (siehe mon vorheriges Posting).
je veux la fois espérer, qui encore irgendjemand Lust hat, qui l'affaire avec mir zusammen trop entwickeln et un paire idées einzubringen. dans qui règle doit je (comment chez qui LSA API) eigentlich seulement einmal dans qui richtige direction geschupst volonté, um ensuite une Solution trop erkennen...

Zwar hat Roland [...]  geschrieben, qui il selbst aucun Possibilité trouvé hat, qui trop realisieren - cela sollte uns mais pas absolument entmutigen.
sous 2000/XP funtioniert qui l'affaire bereits sur qui PRINTUI.DLL - cela est, il y a aussi une Solution pour NT.
si je Rolands Posting richtig gedeutet habe, peux je mir déjà présenter, wohin oui c'est ca il là Probleme hatte. malheureusement manquer mir Rolands Quelltextversuche dans Delphi, je hätte sonst peut-être déjà qui Solution. Sollte je peut-être la fois versuchen, qui trop bekommen?
 
23.01.2005  
 




CB
allô Andreas,

Code habe je conservé, kanns mais seulement demain testen -qui Workstation habe je dans qui travail - halte toi am laufenden!

Salut,
Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
23.01.2005  
 



allô Christian...

Besten Dank pour deine Rückmeldung!!!

cela gibts doch pas! qui Flag DM_UPDATE existiert encore sous Windows-NT!!! avec cela pourrait ca une pour alle 32-Bit Betriebssysteme funtionierende Solution son:
KompilierenMarqueSéparation
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 Standartdrucker: "+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&=@DocumentProperties(%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&
                PRINT @STR$(OFFSET&)+"   "+@STR$(Zähler&)+"    "+@STR$(@BYTE(DevMode#,Zähler&))+"    "+@STR$(@Byte(DevMode2#,VERGLEICH&))
                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_Orientatio
ellen 2 @EDitBox("Ruckgaben",1)

Hat quelqu'un quelque chose vers cet Solution einzuwenden? Gibts Probleme?
 
24.01.2005  
 



allô alle zusammen...

Bernhard Künzel hat mir encore une faute gemailt, ici ist il beseitigt:
KompilierenMarqueSéparation
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&
                PRINT @STR$(OFFSET&)+"   "+@STR$(Zähler&)+"    "+@STR$(@BYTE(DevMode#,Zähler&))+"    "+@STR$(@Byte(DevMode2#,VERGLEICH&))
                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_Orientatio
ellen 2 @EDitBox("Ruckgaben",1)
 
26.01.2005  
 



Funktioniert päärfegt

Gibz nu une 1. AHsche Pcu ?
[quote-part:352c70bb36]Ausrichtung soll sur 1 gesetzt volonté!
Aus WIN.INI ausgelesener Standarddrucker: Phaser 8400DP-2
Fehlercode OpenPrinter: 1
Fehlercode dernier API: 0
Longueur qui DEVMODE Struktur: 2576
Fehlercode dernier API: 6
Rückgabe de DocumentProperties beim Lecture qui Struktur: 1
Fehlercode dernier API: 122
Rückgabe de ClosePrinter: 1
Fehlercode dernier API avant dem Lecture de DEVMODE: 122
Fehlercode dernier API pour dem Lecture de DEVMODE: 0
Longueur qui Dossier: 2728
Offset liegt chez: 152
vieille Ausgelesene Ausrichtung: 2
Fehlercode dernier API avant dem mettons de DEVMODE: 0
Fehlercode dernier API pour dem mettons de DEVMODE: 0
Fehlercode OpenPrinter: 1
Fehlercode dernier API: 0
Rückgabe de DocumentProperties beim Lecture qui Struktur: 1
Fehlercode dernier API: 122
Neue Ausgelesene Ausrichtung: 1
Rückgabe de ClosePrinter: 1[/quote-part:352c70bb36]
Salve, iF
 
26.01.2005  
 



allô IF...

là je mir qui neueste XProfan Version seulement im Laufe cet Jahres anschaffen werde, gibts de mir aucun PCU.

près de dem, quoi ici dans den Foren steht, habe je avec weiteren Profanern dans Briefkontakt gestanden.
un Profaner (Bernhard Künzel) hat scheinbar Roland depuis 7 Jahren bombardiert, um une vernünftige Drucklösung de ihm trop bekommen - jusqu'alors était es Roland scheinbar pas possible, quelque chose dans qui Art trop erstellen, quoi aussi im Netzwerkbereich funktioniert.

là je par un Experiment avec dem Changement Bildschirmauflösung wußte, qui chez einem Zugriff sur qui DEVMODE Struktur très interessante Opportunités im cadre des Drucks bestehen, voulais je ihm volontiers quelque chose sous qui Arme greifen et trop einer Losung pour Profan venons (il hats déjà pour total unmöglich gehalten).
Bernhard écrit zur Zeit à einer Drucker PCU et je veux espérer, qui il cet aussi anderen zur Disposition stellt...
 
26.01.2005  
 



qui PRINTUI.DLL liest qui DEVMODE Struktur aus qui Registry aus. si qui betreffenden Registryschlüssel manquer, wird qusie une le vide PDEVMODE.DAT erzeugt et qui Ausrichtung peux pas geändert volonté - alors neuer Versuch avec Direktzugriff sur qui DEVMODE dans qui Registry sous Windows2000/XP:
KompilierenMarqueSéparation
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
@EDitBox("Ruckgaben",1)
 
30.01.2005  
 



 
- page 4 -



CB
Hi, Andreas!
sur XP - WLAN-Printserver:
KompilierenMarqueSéparation
Salut,
Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
30.01.2005  
 



Funzt perfect: [quote-part:87cc1988f2]Ausrichtung soll sur 2 gesetzt volonté!
Aus WIN.INI ausgelesener Standarddrucker: Phaser 8400DP-2
Fehlercode OpenPrinter: 1
Fehlercode dernier API: 0
Longueur qui DEVMODE Struktur: 2576
Fehlercode dernier API: 6
Rückgabe de DocumentProperties beim Lecture qui Struktur: 1
Fehlercode dernier API: 122
vieille Ausgelesene Ausrichtung: 1
Rückgabe de ClosePrinter: 1
Fehlercode OpenPrinter: 1
Fehlercode dernier API: 0
Rückgabe de DocumentProperties beim Lecture qui Struktur: 1
Fehlercode dernier API: 122
Neue Ausgelesene Ausrichtung: 2
Rückgabe de ClosePrinter: 1[/quote-part:87cc1988f2]
[quote-part:87cc1988f2]Ausrichtung soll sur 1 gesetzt volonté!
Aus WIN.INI ausgelesener Standarddrucker: Phaser 8400DP-2
Fehlercode OpenPrinter: 1
Fehlercode dernier API: 0
Longueur qui DEVMODE Struktur: 2576
Fehlercode dernier API: 6
Rückgabe de DocumentProperties beim Lecture qui Struktur: 1
Fehlercode dernier API: 122
vieille Ausgelesene Ausrichtung: 2
Rückgabe de ClosePrinter: 1
Fehlercode OpenPrinter: 1
Fehlercode dernier API: 0
Rückgabe de DocumentProperties beim Lecture qui Struktur: 1
Fehlercode dernier API: 122
Neue Ausgelesene Ausrichtung: 1
Rückgabe de ClosePrinter: 1[/quote-part:87cc1988f2]
Salve, iF
 
30.01.2005  
 




CB
Hi, Andreas!
Test qui letzten Version sous NT:

Meinen Glückwunsch!
[quote-part:9d2a00bfd0]
Ausrichtung soll sur 2 gesetzt volonté!
Aus WIN.INI ausgelesener Standarddrucker: \SVAXerox
Fehlercode OpenPrinter: 1
Fehlercode dernier API: 0
Longueur qui DEVMODE Struktur: 268
Fehlercode dernier API: 122
Rückgabe de DocumentProperties beim Lecture qui Struktur: 1
Fehlercode dernier API: 122
Rückgabe de DocumentProperties beim Lecture qui Struktur: 1
Fehlercode dernier API: 122
vieille Ausgelesene Ausrichtung: 1
Rückgabe de DocumentProperties beim mettons qui qualité: 1
Fehlercode dernier API: 122
Rückgabe de ClosePrinter: 1
Fehlercode OpenPrinter: 1
Fehlercode dernier API: 0
Rückgabe de DocumentProperties beim Lecture qui Struktur: 1
Fehlercode dernier API: 122
Neue Ausgelesene Ausrichtung: 2
Rückgabe de ClosePrinter: 1
[/quote-part:9d2a00bfd0]
peut-être devrait Du encore dans qui Editbox qui Windows-Version avec eintragen, ensuite brauchen wirs pas plus dazuschreiben - pour peut-être. neue Testläufe...

Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
31.01.2005  
 




Manfred
Barei
allô Andreas,

Test avec einem reinen Netzwerkdrucker sous Betriebssystem ( Client Windows NT 4.0 Sevicepack 6, Server Windows 2003 Server)

[quote-part:4174c6ae51]
Ausrichtung soll sur 2 gesetzt volonté!
Aus WIN.INI ausgelesener Standarddrucker: \GPGBEV1GPGPRT3
Fehlercode OpenPrinter: 1
Fehlercode dernier API: 0
Longueur qui DEVMODE Struktur: 1278
Fehlercode dernier API: 288
Rückgabe de DocumentProperties beim Lecture qui Struktur: 1
Fehlercode dernier API: 288
Rückgabe de DocumentProperties beim Lecture qui Struktur: 1
Fehlercode dernier API: 288
vieille Ausgelesene Ausrichtung: 1
Rückgabe de DocumentProperties beim mettons qui qualité: 1
Fehlercode dernier API: 288
Rückgabe de ClosePrinter: 1
Fehlercode OpenPrinter: 1
Fehlercode dernier API: 0
Rückgabe de DocumentProperties beim Lecture qui Struktur: 1
Fehlercode dernier API: 288
Neue Ausgelesene Ausrichtung: 2
Rückgabe de ClosePrinter: 1
[/quote-part:4174c6ae51]
Grus aus qui Heide de Manfred
 
Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 |
03.02.2005  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

12.627 Views

Untitledvor 0 min.
E.T. vor 13 Tagen
Uwe Lang21.11.2021
Thomas Zielinski05.02.2021
H.Brill07.06.2020
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie