Foro | | | | - 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)??? |
| | | | |
| | | | | - Página 3 - |
| 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 |
| | | | |
| | | ¡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? |
| | | | |
| | CB | ¡Hola Andreas,
Code Yo obtener, kanns aber sólo morgen testen -el Workstation Yo en el Arbeit - halte Usted al laufenden!
Saludo, Christian |
| | | | |
| | | ¡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ónDEF @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? |
| | | | |
| | | ¡Hola todos zusammen...
Bernhard Künzel ha me todavía una Fehler gemailt, hier es él beseitigt: KompilierenMarcaSeparaciónDEF @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)
|
| | | | |
| | | 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 |
| | | | |
| | | ¡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... |
| | | | |
| | | 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ónDEF @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)
|
| | | | |
| | | | - Página 4 - |
| | CB | | | | | |
| | | Funzt perfect: [quote:87cc1988f2]Ausrichtung se en 2 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 Alte Ausgelesene Ausrichtung: 1 Rückgabe de ClosePrinter: 1 Fehlercode OpenPrinter: 1 Fehlercode letzte API: 0 Rückgabe de DocumentProperties beim Auslesen el Struktur: 1 Fehlercode letzte API: 122 Neue Ausgelesene Ausrichtung: 2 Rückgabe de ClosePrinter: 1[/quote:87cc1988f2] [quote:87cc1988f2]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 Alte Ausgelesene Ausrichtung: 2 Rückgabe de ClosePrinter: 1 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:87cc1988f2] Salve, IF |
| | | | |
| | CB | Hi, Andreas! Test el letzten Versión bajo NT:
Meinen Glückwunsch! [quote:9d2a00bfd0] Ausrichtung se en 2 gesetzt voluntad! Aus WIN.INI ausgelesener Standarddrucker: \SVAXerox Fehlercode OpenPrinter: 1 Fehlercode letzte API: 0 Longitud el DEVMODE Struktur: 268 Fehlercode letzte API: 122 Rückgabe de DocumentProperties beim Auslesen el Struktur: 1 Fehlercode letzte API: 122 Rückgabe de DocumentProperties beim Auslesen el Struktur: 1 Fehlercode letzte API: 122 Alte Ausgelesene Ausrichtung: 1 Rückgabe de DocumentProperties beim Setzen el Eigenschaft: 1 Fehlercode letzte API: 122 Rückgabe de ClosePrinter: 1 Fehlercode OpenPrinter: 1 Fehlercode letzte API: 0 Rückgabe de DocumentProperties beim Auslesen el Struktur: 1 Fehlercode letzte API: 122 Neue Ausgelesene Ausrichtung: 2 Rückgabe de ClosePrinter: 1 [/quote:9d2a00bfd0] Tal vez solltest Usted aún en el Editbox el Windows-Versión con eintragen, entonces brauchen wirs no mehr dazuschreiben - para evtl. neue Testläufe...
Christian |
| | | | |
| | Manfred Barei | ¡Hola Andreas,
Test con un reinen Netzwerkdrucker bajo Betriebssystem ( Client Windows NT 4.0 Sevicepack 6, Server Windows 2003 Server)
[quote:4174c6ae51] Ausrichtung se en 2 gesetzt voluntad! Aus WIN.INI ausgelesener Standarddrucker: \GPGBEV1GPGPRT3 Fehlercode OpenPrinter: 1 Fehlercode letzte API: 0 Longitud el DEVMODE Struktur: 1278 Fehlercode letzte API: 288 Rückgabe de DocumentProperties beim Auslesen el Struktur: 1 Fehlercode letzte API: 288 Rückgabe de DocumentProperties beim Auslesen el Struktur: 1 Fehlercode letzte API: 288 Alte Ausgelesene Ausrichtung: 1 Rückgabe de DocumentProperties beim Setzen el Eigenschaft: 1 Fehlercode letzte API: 288 Rückgabe de ClosePrinter: 1 Fehlercode OpenPrinter: 1 Fehlercode letzte API: 0 Rückgabe de DocumentProperties beim Auslesen el Struktur: 1 Fehlercode letzte API: 288 Neue Ausgelesene Ausrichtung: 2 Rückgabe de ClosePrinter: 1 [/quote:4174c6ae51] Grus de el 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 ▲ |
| |
|
RespuestaTema opciones | 12.105 Views |
ThemeninformationenDieses Thema ha 6 subscriber: |