English
Forum

Network?

 
- Page 1 -


hello everyone zusammmen...

I have none blassen Schimmer of Netzwerken and have too keins, with the I time herumexperimentieren can. therefore following ask:

- can eachone, the on the networking connected is, The Druckeigenschaften change (z.B. of Hochformat on Landscape to put), or can the only from the computer from, on the the printer connected is? (betriebssystem important...)

- which Privilegien count, if I in a networking on one others computer Systemspezifische things perform wants (RegConnectRegistry, RegLoadKey, RegSaveKey)???
 
01/16/05  
 



 
- Page 3 -



CB
Halllo Andreas,

Freut me, that you my hint gefällt (the coming moreover of my brother) - who DAS not red has, has eindeutig a Bildungslücke...

To Your proposition: the sound very interestingly - for us any!
stand you gladly as NT-Tester available - evident be I dzt. the only, the so one networking available has.
if the for you important is: properly have I with my private PC a Switch on a NT-Workstation appended, on the XP-computer depends then my Printer - I can means vergleichen, How itself your Program on both behave.
what does one not everything for a good object! i'd me but something leichter thereby do, if you me whom To testenden code by email send would.
The NT-Workstation depends unfortunately not internet, I can but the email over my Handy herunterladen, the Attachment on a SD-ticket Save and then on this PC einspielen. this is of course umständlich, I erspare me thereby but a couple further steps (Download the Codes of companies-PC, as email-Attachment on my Mailbox send).
Sincerely,
Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
01/22/05  
 



Hello Christian...

a NT-Tester for the proposition can I always use.
I have you time whom View source to that testing XP on your Mailadresse skillful.
After of my night shift poste I here over again a View source, the whom Flag DM_UPDATE too under WindowsNT setting. Perhaps Gibts this undokumentierten Flag Yes first ex 2000 not any more.

in the next week come then a couple (not yet funtionierende) Anfänge with Setprinter hinzu (see my vorheriges Posting).
i will time hoping, that yet someone pleasure has, The thing with me together to develop and a couple ideas einzubringen. in the rule must I (How with the LSA API) really only once into right direction geschupst go, circa then a Solution To discern...

of course has Roland [...]  written, that himself no Possibility found has, that To release - the ought to us but not absolutely entmutigen.
under 2000/XP funtioniert The thing already over The PRINTUI.DLL - that is, there's too a Solution for NT.
If I Rolands Posting correctly. gedeutet have, can I me already present, where very it there Problems having. unfortunately are missing me Rolands Quelltextversuche in Delphi, I had otherwise Perhaps already The Solution. ought to I Perhaps time try, The To get?
 
01/23/05  
 




CB
Hello Andreas,

code have I receive, kanns but first tommorrow testing -The Workstation have I in the work - stops you on the ongoing!

Sincerely,
Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
01/23/05  
 



Hello Christian...

best Thanks for your feedback!!!

the Gibts still not! The Flag DM_UPDATE existing yet under windows-NT!!! so might this a for all 32-bit Betriebssysteme funtionierende Solution his:
CompileMarkSeparation
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)

has someone something against these Solution einzuwenden? Gibts Problems?
 
01/24/05  
 



hello everyone together...

Bernhard Künzel has me yet a Error gemailt, here's it eliminating:
CompileMarkSeparation
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)
 
01/26/05  
 



functions päärfegt

Gibz nu a 1. AHsche Pcu ?
[quote:352c70bb36]Align should on 1 staid go!
from WIN.INI ausgelesener Standarddrucker: Phaser 8400DP-2
Error Code OpenPrinter: 1
Error Code latest API: 0
length the DEVMODE structure: 2576
Error Code latest API: 6
Return of DocumentProperties at Reading the structure: 1
Error Code latest API: 122
Return of ClosePrinter: 1
Error Code last API to the Reading of DEVMODE: 122
Error Code last API to the Reading of DEVMODE: 0
length the File: 2728
Offset lying with: 152
old Ausgelesene Align: 2
Error Code last API to the settle of DEVMODE: 0
Error Code last API to the settle of DEVMODE: 0
Error Code OpenPrinter: 1
Error Code latest API: 0
Return of DocumentProperties at Reading the structure: 1
Error Code latest API: 122
new Ausgelesene Align: 1
Return of ClosePrinter: 1[/quote:352c70bb36]
salvo, iF
 
01/26/05  
 



Hello IF...

Since I me The latest XProfan Version first in the running this year procure will be, Gibts of me no PCU.

next to the, what here in whom Forums standing, have I with further Profanern in Briefkontakt stood.
One Profaner (Bernhard Künzel) has apparently Roland since 7 years bombardiert, circa a reasonable Drucklösung of it To get - bislang was is Roland apparently you don't say so, something in the manner to create, what in Netzwerkbereich functions.

Since I through one experiment with the Change Bildschirmauflösung knew, that with one Access to The DEVMODE structure very interesting Opportunities in the welt the Drucks consist, wished I it gladly something under The poor grab and to a denouement for Profan come (it hats already for utterly unmöglich held).
Bernhard writes to Time at a printer PCU what about me wants hoping, that it these too others available position...
 
01/26/05  
 



The PRINTUI.DLL reads The DEVMODE structure from the Registry from. If the betreffenden Registryschlüssel are missing, becomes qusie a vain PDEVMODE.DAT created and the Align can't changed go - means new attempt with Direktzugriff on The DEVMODE in the Registry under windows2000/XP:
CompileMarkSeparation
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)
 
01/30/05  
 



 
- Page 4 -



CB
Hi, Andreas!
On XP - WLAN-Printserver:
CompileMarkSeparation
Sincerely,
Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
01/30/05  
 



working perfect: [quote:87cc1988f2]Align should on 2 staid go!
from WIN.INI ausgelesener Standarddrucker: Phaser 8400DP-2
Error Code OpenPrinter: 1
Error Code latest API: 0
length the DEVMODE structure: 2576
Error Code latest API: 6
Return of DocumentProperties at Reading the structure: 1
Error Code latest API: 122
old Ausgelesene Align: 1
Return of ClosePrinter: 1
Error Code OpenPrinter: 1
Error Code latest API: 0
Return of DocumentProperties at Reading the structure: 1
Error Code latest API: 122
new Ausgelesene Align: 2
Return of ClosePrinter: 1[/quote:87cc1988f2]
[quote:87cc1988f2]Align should on 1 staid go!
from WIN.INI ausgelesener Standarddrucker: Phaser 8400DP-2
Error Code OpenPrinter: 1
Error Code latest API: 0
length the DEVMODE structure: 2576
Error Code latest API: 6
Return of DocumentProperties at Reading the structure: 1
Error Code latest API: 122
old Ausgelesene Align: 2
Return of ClosePrinter: 1
Error Code OpenPrinter: 1
Error Code latest API: 0
Return of DocumentProperties at Reading the structure: 1
Error Code latest API: 122
new Ausgelesene Align: 1
Return of ClosePrinter: 1[/quote:87cc1988f2]
salvo, iF
 
01/30/05  
 




CB
Hi, Andreas!
Test the last Version NT:

my Glückwunsch!
[quote:9d2a00bfd0]
Align should on 2 staid go!
from WIN.INI ausgelesener Standarddrucker: \SVAXerox
Error Code OpenPrinter: 1
Error Code latest API: 0
length the DEVMODE structure: 268
Error Code latest API: 122
Return of DocumentProperties at Reading the structure: 1
Error Code latest API: 122
Return of DocumentProperties at Reading the structure: 1
Error Code latest API: 122
old Ausgelesene Align: 1
Return of DocumentProperties at settle the quality: 1
Error Code latest API: 122
Return of ClosePrinter: 1
Error Code OpenPrinter: 1
Error Code latest API: 0
Return of DocumentProperties at Reading the structure: 1
Error Code latest API: 122
new Ausgelesene Align: 2
Return of ClosePrinter: 1
[/quote:9d2a00bfd0]
Perhaps should You still in The Editbox The windows-Version with present, then need wirs not any more dazuschreiben - for evtl. new Testläufe...

Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
01/31/05  
 




Manfred
Barei
Hello Andreas,

Test with a reinen Netzwerkdrucker under Betriebssystem ( Client windows NT 4.0 Sevicepack 6, Server windows 2003 Server)

[quote:4174c6ae51]
Align should on 2 staid go!
from WIN.INI ausgelesener Standarddrucker: \GPGBEV1GPGPRT3
Error Code OpenPrinter: 1
Error Code latest API: 0
length the DEVMODE structure: 1278
Error Code latest API: 288
Return of DocumentProperties at Reading the structure: 1
Error Code latest API: 288
Return of DocumentProperties at Reading the structure: 1
Error Code latest API: 288
old Ausgelesene Align: 1
Return of DocumentProperties at settle the quality: 1
Error Code latest API: 288
Return of ClosePrinter: 1
Error Code OpenPrinter: 1
Error Code latest API: 0
Return of DocumentProperties at Reading the structure: 1
Error Code latest API: 288
new Ausgelesene Align: 2
Return of ClosePrinter: 1
[/quote:4174c6ae51]
Grus from the Heath of 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 |
02/03/05  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

12.624 Views

Untitledvor 0 min.
E.T. vor 13 Tagen
Uwe Lang11/21/21
Thomas Zielinski02/05/21
H.Brill06/07/20
More...

Themeninformationen



Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie