Forum | | | | - 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)??? |
| | | | |
| | | | - Page 2 - |
| | | my question here over again something spezieller words:
The Konstanten and API-Deklarationen, The I Search, are the Header-File winddiui.h declared. Who these File or How come I these Header-File (alike for which Programming-Language)???
|
| | | | |
| | | Have what nice found. where GEHTS, where not? which Rüchgaben? CompileMarkSeparationDEF @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 &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#
Declare Pdevice$,Count&,Länge&,DevMode#,DevMode2#,Länge&,Fehler&
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$
IF WinVer&<4
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&=@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 beim Auslesen der Struktur: "+@STR$(Fehler&)
Dispose DevMode#
Dispose PHANDLE#
Dispose DevMode2#
Else
DIM DevMode2#,10001
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)
Addstring "Länge der Datei: "+@STR$(Länge&)
Addstring "Alte Ausgelesene Ausrichtung: "+@STR$(@WORD(DevMode2#,$E4))
WORD DevMode2#,$E4=Orientation%
SEEK #1,0
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
ENDIF
Dispose ReturnBuffer#
Dispose DevMode2#
Dispose OS#
Endproc
Drucker_Orientation_Umstellen 2
@ | 01/19/05 ▲ | |
| |
| | | [quote:bf4329f382]Align should on 2 staid go! from WIN.INI ausgelesener Standartdrucker: Phaser 8400DP-2 Error Code last API to the Reading of DEVMODE: 0 Error Code last API to the Reading of DEVMODE: 0 length the File: 2728 old Ausgelesene Align: 1 Error Code last API to the settle of DEVMODE: 0 Error Code last API to the settle of DEVMODE: 0[/quote:bf4329f382]then Error Variable not declared Dispose os#
but alike! 2.Passage:[quote:bf4329f382]Align should on 2 staid go! from WIN.INI ausgelesener Standartdrucker: Phaser 8400DP-2 Error Code last API to the Reading of DEVMODE: 0 Error Code last API to the Reading of DEVMODE: 0 length the File: 2728 old Ausgelesene Align: 2 Error Code last API to the settle of DEVMODE: 0 Error Code last API to the settle of DEVMODE: 0[/quote:bf4329f382]it works! Hurray
salvo, iF |
| | | | |
| | | Hello IF...
I had me eigendlich already before think can, that You faster testest, as i my Posting write can .
I suspect with the View source yet Problems with OpenPrinter with one Netzwerkdrucker. it would me therefore very important, that as many as possible mittesten... |
| | | | |
| | | As I said - my printer is a Netzwerkdrucker - one Netzwerkdrucker the however not in a computer angeschloßen is - separate directly on the Switch.
Netzwerkiger gehz means not
i think however - it game no role whether Netzwerkdrucker or not - there from the visibility your APIs Yes always the pub-eingerichtete-printer tuned becomes - as it itself heard.
one can quasi not The Druckereinstellungen one Druckers change - separate only The Settings one Rechners. where the printer letztendlich angeschloßen is game thereby Yes no role - this is Yes thing Windows in the area Druckereinstellungen -> Anschlüsse.
salvo, iF |
| | | | |
| | | apparently go on whom beginning the DEVMODE-File Info written, The Druckerabhängig are. The Offset paßte means not yet everywhere, therefore here new code: - where Change the Settings, where not? - which Rückmeldungen there?
I need as many as possible Rückmeldungen, because I into, I here do, none more Einblick have (RUNDLL). Also can it in windows98 Netzwerken Perhaps yet To Problemen come, The I in moment not discern can. From ME white I do not, whether here the Flag DM_UPDATE yet supported becomes (is undokumentiert). From NT can I not say, whether here the PRINTUI interface present is.
who already whom middle-aged code tested has, ought to before once The Druckeinstellungen Call and on take clicking, so possible before wrong ingestellten values deleted and be the Offset found go can...
here one new code: CompileMarkSeparationDEF @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&<4
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&=@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
Dispose PHANDLE#
Dispose DevMode2#
Dispose DevMode#
ENDIF
Endproc
Drucker_Orientation_Umstellen ass=s2>2
@EDitBox("Ruckgaben",1)
|
| | | | |
| | | [quote:937d49d457]Align should on 2 staid go! from WIN.INI ausgelesener Standartdrucker: Phaser 8400DP-2 Error Code OpenPrinter: 1 Error Code latest API: 0 length the DEVMODE structure: 2512 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[/quote:937d49d457] |
| | | | |
| | | Hello IF...
Klappt with you means apparently furthermore. with Bernhard Künzel funktionierts under windows2000 ditto. by me under windows98 without networking GEHTS ditto. so slow Better get going what... |
| | | | |
| | CB | Hello Andreas, NT-networking: following Fehlermessage:
(RUNDLL) Error in printui.dll Folgender entry missing: PrintUIEntry (These Message appear moreover 2x one after another)
Getestet with your older code-Version. helps you the moreover? your completions entnehme I, that itself concerning NT in the new Version (yet) nothing changed has - correctly? otherwise should I yet to the weekend your newer Version testing. This is by here from a morsel of umständlich, there not the www joined (be in the work and I here a something ältere Workstation with NT4, on The I my private PC mitsamt Laserprinter angestöpselt have ) and over weekend must I do not absolutely here his...
Sincerely, Christian |
| | | | |
| | | Hello Christian...
the has me very helped! under WindowsNT missing So the Printui-interface. can you time look over, whether The PRINTUI.DLL there at all present is? |
| | | | |
| | CB | Yes, (standing in system32)
Sincerely, Christian |
| | | | |
| | | OK...
then missing now really only yet what lauffähiges for WindowsNT.
Since I suspect, that here the Flag DM_UPDATE not supported becomes, I will the first none try. for suggestions and ideas in reference on WindowsNT would I very grateful... |
| | | | |
|
AnswerTopic-Options | 12.629 Views |
Themeninformationenthis Topic has 6 subscriber: |