Español
Foro

Netzwerk?

 
- Página 1 -


¡Hola todos zusammmen...

Yo habe no blassen Schimmer de Netzwerken y habe auch keins, con el Yo veces herumexperimentieren kann. Deshalb folgende Fragen:

- Kann cada, el a el Netzwerk angeschlossen es, el Druckeigenschaften verändern (z.B. de Hochformat en Querformat stellen), oder puede ser el sólo de el Rechner de, a el el Drucker angeschlossen es? (betriebssystem wichtig...)

- Welche Privilegien gelten, si yo en un Netzwerk en una otro Computer Systemspezifische Sachen ausführen voluntad (RegConnectRegistry, RegLoadKey, RegSaveKey)???
 
16.01.2005  
 



 
- Página 3 -



Jörg
Sellmeyer
¡Hola Andreas,
Das kommt en me fuera (Win98se sin Netzwerk):

Ausrichtung se en 2 gesetzt voluntad!
Aus WIN.INI ausgelesener Standartdrucker: Canon i550
Fehlercode OpenPrinter: 1
Fehlercode letzte API: 0
Longitud el DEVMODE Struktur: 692
Fehlercode letzte API: 0
Rückgabe de DocumentProperties beim Auslesen el Struktur: 1
Fehlercode letzte API: 0
Rückgabe de DocumentProperties beim Auslesen el Struktur: 1
Fehlercode letzte API: 0
Alte Ausgelesene Ausrichtung: 1
Rückgabe de DocumentProperties beim Setzen el Eigenschaft: 1
Fehlercode letzte API: 0
Rückgabe de DocumentProperties beim Auslesen el Struktur: 1
Fehlercode letzte API: 0
Neue Ausgelesene Ausrichtung: 2
Rückgabe de ClosePrinter: 1

Saludo
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
21.01.2005  
 




CB
Hi,

para todos, que fragen, como ellos en el Netzwerk correcto el Kurve kriegen, Yo una echt heißen Tip parat:

[...] 

Como voluntad ellos geholfen - garantiert!

Saludo,
Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
21.01.2005  
 



Der absoulte Hammer

Salve, IF
 
21.01.2005  
 



¡Hola Christian...

Yo habe el Counterstrike Cuestión veces a media Schwager weitergeleitet - el es Programmierer en uno Einzelhandelskette y weiß determinado auch una passende Antwort...

Nochmals a mi Problema:
El PRINTUI.DLL (Imprimirél User Interface) unterstützt bajo NT also wohl el Commandline Befehle no - Yo habs sí ya vorher vermutet.

Yo habe me el DLL con un Disassembler nochmals algo genauer angesehen y algo herumgegooglet.
El Sache müßte auch así trabajo:
- Mit GetPrinter a el Handle des Druckers gelangen, esta el Handle con el ACCESS_RIGHTS PRINTER_ALL_ACCESS abierto.
- Über DocumentProperties a el Größe el DEVMODE gelangen.
- Über DocumentProperties el DEVMODE Struktur auslesen.
- El Members dmFields y dmOrientation passend conjunto.
- Über DocumentProperties el DEVMODE Struktur con el Flags DM_IN_BUFFER y DM_OUT_BUFFER conjunto.
- Mit SetPrinter en Printer_Info_2 Struktur el Default Einstellungen adaptar.
- Mit ClosePrinter el Printerhandle schließen.

Leider bn Yo así bislang todavía no weitergekommen - zwar voluntad el Einstellungen para el Printer gesetzt, el Defaultwerte voluntad pero no geändert. Posesiones Yo hier una Denkfehler? Ver código fuente folgt en el nächsten Semana, después de mi Nachtdienst...

Der Grund meiner Bemühungen:
Ohne el Cambio el Defaultwerte es scheinbar no posible con el Profanbefehlen Startprint y Endprint a trabajo y una richtigen Druck en el Querformat a erzielen (u otros Einstellungen el para el Druck zuständigen DEVMODE a ändern).
Das Endergebnis se also para Jedermann una vernünftiges Drucken con Profano ermöglichen...
 
22.01.2005  
 




CB
Halllo Andreas,

Freut mich, daß Euch mein Tip gefällt (el kam überdies de mi Bruder) - wer DAS no gelesen ha, ha eindeutig una Bildungslücke...

Zu Deinem Projekt: Das klingt muy interessant - para uns todos!
Stehe Usted gerne como NT-Tester disponible - offenbar bin Yo dzt. el einzige, el así una Netzwerk disponible ha.
Falls el para Usted wichtig es: genaugenommen Yo mich con mi privaten PC encima una Switch a una NT-Workstation angehängt, al XP-Rechner hängt entonces mein Printer - Yo kann also vergleichen, como se Su Programa en beiden verhält.
Was tut uno no alles para una guten Zweck! Yo sería me aber algo leichter esta tun, si me el a testenden Code por email enviar würdest.
El NT-Workstation hängt por desgracia, no Internet, Yo kann aber el email encima mein Handy herunterladen, el Attachment en una SD-Karte speichern y luego en esta PC einspielen. Es zwar umständlich, Yo erspare me esta aber unos pocos weitere Schritte (Descargar des Codes vom Firmen-PC, como email-Attachment en mi Mailbox enviar).
Saludo,
Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
22.01.2005  
 



¡Hola Christian...

Einen NT-Tester para el Projekt kann Yo siempre gebrauchen.
Yo habe dir veces el Ver código fuente para Testen bajo XP a deine Mailadresse geschickt.
Nach meiner Nachtschicht poste Yo hier nochmals una Ver código fuente, el el Flag DM_UPDATE auch bajo WindowsNT setzt. Tal vez gibts esta undokumentierten Flag sí sólo de 2000 no mehr.

In el nächsten Semana kommen entonces unos pocos (todavía no funtionierende) Anfänge con Setprinter hinzu (siehe mein vorheriges Posting).
Yo voluntad veces hoffen, daß todavía irgendjemand Lust ha, el Sache con me zusammen para desarrollar y unos pocos Ideen einzubringen. In el Regel muß Yo (como en LSA API) eigentlich sólo una vez en el richtige Richtung geschupst voluntad, en entonces una solución a erkennen...

Zwar ha Roland [...]  geschrieben, daß él incluso no Möglichkeit gefunden ha, daß a realisieren - el debería uns pero no necesariamente entmutigen.
Bajo 2000/XP funtioniert el Sache ya en PRINTUI.DLL - el heißt, lo son auch una solución a NT.
Wenn Yo Rolands Posting correcto gedeutet habe, kann Yo ya vorstellen, wo genau él como Problemas hatte. Leider fehlen me Rolands Quelltextversuche en Delphi, Yo hätte sonst tal vez ya el Solución. Sollte Yo tal vez veces versuchen, el a bekommen?
 
23.01.2005  
 




CB
¡Hola Andreas,

Code Yo obtener, kanns aber sólo morgen testen -el Workstation Yo en el Arbeit - halte Usted al laufenden!

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



¡Hola Christian...

Besten Dank para deine Rückmeldung!!!

Das gibts doch no! Der Flag DM_UPDATE existiert todavía bajo Windows-NT!!! Damit dürfte dies una para todos 32-Bit Betriebssysteme funtionierende Solución ser:
KompilierenMarcaSeparación
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)

Sombrero alguien algo gegen esta Solución einzuwenden? Gibts Problemas?
 
24.01.2005  
 



¡Hola todos zusammen...

Bernhard Künzel ha me todavía una Fehler gemailt, hier es él beseitigt:
KompilierenMarcaSeparación
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 una 1. AHsche Pcu ?
[quote:352c70bb36]Ausrichtung se en 1 gesetzt voluntad!
Aus WIN.INI ausgelesener Standarddrucker: Phaser 8400DP-2
Fehlercode OpenPrinter: 1
Fehlercode letzte API: 0
Longitud el DEVMODE Struktur: 2576
Fehlercode letzte API: 6
Rückgabe de DocumentProperties beim Auslesen el Struktur: 1
Fehlercode letzte API: 122
Rückgabe de ClosePrinter: 1
Fehlercode letzter API antes el Auslesen de DEVMODE: 122
Fehlercode letzter API después de el Auslesen de DEVMODE: 0
Longitud el Expediente: 2728
Offset liegt en: 152
Alte Ausgelesene Ausrichtung: 2
Fehlercode letzter API antes el Setzen de DEVMODE: 0
Fehlercode letzter API después de el Setzen de DEVMODE: 0
Fehlercode OpenPrinter: 1
Fehlercode letzte API: 0
Rückgabe de DocumentProperties beim Auslesen el Struktur: 1
Fehlercode letzte API: 122
Neue Ausgelesene Ausrichtung: 1
Rückgabe de ClosePrinter: 1[/quote:352c70bb36]
Salve, IF
 
26.01.2005  
 



¡Hola IF...

Desde que me el neueste XProfan Versión sólo en el Laufe dieses Jahres anschaffen voluntad, gibts de me no PCU.

Neben el, qué aquí en el Foren es, Yo con más Profanern en Briefkontakt gestanden.
Ein Profaner (Bernhard Künzel) ha scheinbar Roland seit 7 Jahren bombardiert, una vernünftige Drucklösung de ihm a bekommen - bislang war lo Roland scheinbar no posible, algo en el Art a redactar, qué auch en el Netzwerkbereich funktioniert.

Desde que por una Experiment con el Cambio Bildschirmauflösung wußte, daß en una Zugriff en el DEVMODE Struktur muy interessante Möglichkeiten en el Rahmen des Drucks bestehen, Yo quería ihm gerne algo bajo el Arme greifen y a uno Losung para Profano kommen (él hats ya para total unmöglich mantenido).
Bernhard schreibt a Tiempo a uno Drucker PCU y yo voluntad hoffen, daß él esta auch otro disponible stellt...
 
26.01.2005  
 



El PRINTUI.DLL liest el DEVMODE Struktur de el Registry de. Wenn el betreffenden Registryschlüssel fehlen, se qusie una vacío PDEVMODE.DAT producido y el Ausrichtung kann no geändert voluntad - also neuer Intento con Direktzugriff en el DEVMODE en el Registry bajo Windows2000/XP:
KompilierenMarcaSeparación
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  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

12.160 Views

Untitledvor 0 min.
E.T.12.06.2023
Uwe Lang21.11.2021
Thomas Zielinski05.02.2021
H.Brill07.06.2020
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie