| |
|
|
| Hallo alle zusammmen...
Ich habe keinen blassen Schimmer von Netzwerken und auch habe auch keins, mit dem ich mal herumexperimentieren kann. Deshalb folgende Fragen:
- Kann jeder, der an dem Netzwerk angeschlossen ist, die Druckeigenschaften verändern (z.B. von Hochformat auf Querformat stellen), oder kann man das nur von dem Rechner aus, an dem der Drucker angeschlossen ist? (betriebssystem wichtig...)
- Welche Privilegien gelten, wenn ich in einem Netzwerk auf einem anderen Computer Systemspezifische Sachen ausführen will (RegConnectRegistry, RegLoadKey, RegSaveKey)??? |
|
|
| |
|
|
|
Rolf Koch | Hi Ich kann Dir nur sagen wie es bei mir ist. Ich kann den Drucker, welcher bei meiner Frau am Rechner angeschlossen ist bedienen und Hochformat u.s.w einstellen.
Rolf |
|
|
| |
|
|
|
| Besten Dank, Rolf.
Von dir weiß ich, daß du mit XP arbeitest. |
|
|
| |
|
|
|
| Nun egal ob Netzdrucker oder Drucker am Rechner über Netzwerk - wenn ein Client mit drucken möchte brauchter auch nen Treiber - das heißt es spielt aus sicht des Clients im Bezug auf Dein Vorhaben glaube keine Rolle ob der Drucker nicht am selben Rechner ist.
Salve, iF |
|
|
| |
|
|
|
| Nochmals konkreter, besonders an Rolf:
Funktioniert folgender Quelltext für einen Netzwerkdrucker, wenn der Drucker nicht an dem Rechner angeschlossen ist, auf dem der Code ausgeführt wird? Was gibt die Editbox aus? Welche Betriebssysteme laufen auf den Rechnern? KompilierenMarkierenSeparierenIn den "Programmheader" die DEF Zeilen schreiben
DEF @GetProfileString(5) !"kernel32","GetProfileStringA"
DEF @OpenPrinter(3) !"winspool.drv","OpenPrinterA"
DEF @DocumentProperties(6) !"winspool.drv","DocumentPropertiesA"
DEF @GetPrinter(5) !"winspool.drv","GetPrinterA"
DEF @GetLastError(0) !"kernel32","GetLastError"
Proc Drucker_Orientation_Umstellen
Parameters Orientation% 1=Hochformat, 2=Querformat
Declare SectionName$,KeyName$,DefautString$,ReturnBuffer#,Printername$,PHANDLE#
Declare Pdevice$,Count&,Zähler%,DevMode#,DevMode2#,Länge&,Fehler&
DIM ReturnBuffer#,256
DIM PHANDLE#,4
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$
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&+2000
DIM DevMode2#,Länge&+2000
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 "Augenblickliche Ausrichtung: "+@STR$(Fehler&)
Long DevMode#,40=1
Word DevMode#,44=Orientation%
LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode2#,DevMode#,9)
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$),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)
Addstring "Neue Ausgelesene Ausrichtung: "+@STR$(Fehler&)
DELETEOBJECT @Long(PHANDLE#,0)
Dispose ReturnBuffer#
Dispose DevMode#
Dispose PHANDLE#
Dispose DevMode2#
Endproc
Drucker_Orientation_Umstellen 2
@EDitBox("Ruckgaben",1)
|
|
|
| |
|
|
|
Rolf Koch | Kuckkuck AH
Ausrichtung soll auf 2 gesetzt werden! Aus WIN.INI ausgelesener Standartdrucker: \xxxhp deskjet 3320 series Fehlercode OpenPrinter: 1 Fehlercode letzte API: 0 Länge der DEVMODE Struktur: 2057 Fehlercode letzte API: 2 Rückgabe von DocumentProperties beim Auslesen der Struktur: 1 Fehlercode letzte API: 122 Rückgabe von DocumentProperties beim Auslesen der Struktur: 1 Fehlercode letzte API: 122 Augenblickliche Ausrichtung: 1 Rückgabe von DocumentProperties beim Setzen der Eigenschaft: 1 Fehlercode letzte API: 122 Rückgabe von DocumentProperties beim Auslesen der Struktur: 1 Fehlercode letzte API: 122 Neue Ausgelesene Ausrichtung: 1
Rolf |
|
|
| |
|
|
|
| |
|
| |
|
|
|
| [quote:bbf7ae3c85]Ausrichtung soll auf 2 gesetzt werden! Aus WIN.INI ausgelesener Standartdrucker: Phaser 8400DP-2 Fehlercode OpenPrinter: 1 Fehlercode letzte API: 0 Länge der DEVMODE Struktur: 2512 Fehlercode letzte API: 6 Rückgabe von DocumentProperties beim Auslesen der Struktur: 1 Fehlercode letzte API: 122 Rückgabe von DocumentProperties beim Auslesen der Struktur: 1 Fehlercode letzte API: 122 Augenblickliche Ausrichtung: 1 Rückgabe von DocumentProperties beim Setzen der Eigenschaft: 1 Fehlercode letzte API: 122 Rückgabe von DocumentProperties beim Auslesen der Struktur: 1 Fehlercode letzte API: 122 Neue Ausgelesene Ausrichtung: 1[/quote:bbf7ae3c85] Was bei mir vielleicht dazu zu sagen wäre das mein Drucker nen eigenen Rechner mit Webserver intus hat - dieser also nicht an einen PC angeschlossen ist sondern direkt am Netzwerk.
Salve, iF |
|
|
| |
|
|
|
| Besten Dank, IF...
Das Problem liegt ganz woanders: NT unterstützt den Flag DM_UPDATE (=1) in der API DocumentProperties nicht. Es muß demnach also noch eine andere API, mit der man die Default DEVMODE Struktur in der Registry ändern kann - hat jemand einen Tipp? |
|
|
| |
|
|
|
| Au weia - ich Trottel! Ich bewege mich ja auf einem NT-System, und da muß ich dem Printerhandle ja die passenden ACCES_RIGHTS mitgeben! Also - vergeßt mein obiges Posting - es geht mir um OpenPrinter und dabei um den dritten Parameter. Kann mir da jemand weiterhelfen?? |
|
|
| |
|
|
|
| Sorry - ich hab irgendwie den Faden verloren - worum geht es dir genau? |
|
|
| |
|
|
|
| Hallo IF...
Da ich sowieso auf dem falschen Dampfer war, macht das gar nichts. Habe die ACCESS_RIGHTS gesetzt und das bringt gar nichts - also liegts doch am Flag DM_UPDATE von DocumentProperties.
Zur Erklärung: Ich versuche die standarteinstellungen für Hoch-/Querdruck mittels API zu ändern. Unter nicht NT-Systemen geht das wie in meinem Quellcode mit der API DocumentProperties. Unter NT wird der Flag DM_UPDATE (1) scheinbar nicht erkannt (letzter Parameter von DocumentProperties), der die Änderungen in (ich nehme an) die Registry schreiben soll. Da ich denke, daß ein solcher Vorgang eine Systemeinstellung ist, dürften dafür unter NT Privilegien erforderlich sein - deswegen meine Abschweifung.
Ich bin jetzt noch auf die API DrvDocumentPropertySheets [...] gestoßen. Die API sieht auf den ersten Blick sehr vielversprechend aus. Mal sehen, wie weit ich damit komme. Wer Lust hat, kann mir gerne behilflich sein - bin, wie gesagt, eher ein Anfänger... |
|
|
| |
|
|