![]() |
Re: Druckerstatus
Hallo zusammen,
wußte garnicht, daß ich mit dem Drucker so'ne Lawine lostrete. Anscheinend ist das Problem Drucker aber garnicht so trivial. Hallo bisetter, habe Deine Routine mal bei mir eingebaut. Eine kleine Änderung mußte ich vornehmen: if WinSpool.OpenPrinter(@Device, hPrinter, nil) then geändert in if WinSpool.OpenPrinter(Device, hPrinter, nil) then sonst gibt es einen Fehler : Incompatible Typen: 'Array' und 'Char'. Bei der entscheidenden Abfrage erhalte ich immer folgendes: if hDevice <> INVALID_HANDLE_VALUE then hDevice = '4294967295' INVALID_HANDLE_VALUE = '4294967295' also ist der Drucker immer offline. Was kann ich denn jetzt noch machen? |
Re: Druckerstatus
Hallo,
den Code habe ich jetzt mit dem selben Drucker unter WinXP getestet, dort funktionierte er jedoch auch nicht. Das man mit CreateFile unter Win98 jedoch nicht unter WinXP auf den Drucker zugreifen kann, haben wohl auch schon andere Leute festgestellt. Wenn der Code bei dir unter Win98 nicht geht, dann wird es wohl nicht mit allen Druckern funktionieren. :( |
Re: Druckerstatus
Interessanter als der Wert des Handles waere was GetLastError() zurueckgibt. Ich vermute mal, dass einer der Parameter CreateFile() nicht schmeckt, denn prinzipiell kann man Symlinks auf Geraete unter XP (und NT4/2000/2003 ...) sehr wohl per CreateFile() oeffnen. Uebrigens eine nette Analogie zu Linux' "/dev"-Verzeichnis ;)
Im uebrigen braucht man einen Printermonitor (ja, das heisst so) um einen Druckjob zu unterbinden (falls das wirklich das Ziel ist) - es sei denn das Drucken selber (und die Statusabfrage) soll aus deinem eigenen Programm heraus erfolgen. Nichtmal ![]() Uebrigens ist die Sinnhaftigkeit des Druckerstatus umstritten und haengt sehr stark davon ab was der Drucker zurueckmeldet, bzw. zurueckmelden kann. Das muss nicht unbedingt immer sinnvoll sein. |
Re: Druckerstatus
Zitat:
Delphi-Quellcode:
gibt bei mir WinXP die Nachricht "Das System kann die angegebene Datei nicht finden" aus.
ShowMessage(SysErrorMessage(GetLastError));
|
Re: Druckerstatus
Zitat:
|
Re: Druckerstatus
Na, nun mal wieder zum Thema:
Keiner mehr da, dem noch etwas einfällt, was ich nun mit meinem Problem machen könnte? Gruß Christoph |
Re: Druckerstatus
Zitat:
@bitsetter: Mich wuerde mal der Wert fuer TPrinterInfo2A(Buffer^).pPortName interessieren, den ihr bekommt. |
Re: Druckerstatus
Hallo Olli
in dem Feld steht bei mir 'EPUSB1:', dasselbe wie im Info.PortName. Ich habe einen EPSON Stylus DX5000 Series an USB1 angeschlossen. Zu Deiner Antwort: Ja, ich möchte die Lösung in meinem Programm vornehmen. Nein, die obige Lösung bringt immer 'Drucker ist offline' weil die Vergleichswerte identisch sind. :shock: Monitor??? , - mache Delphi erst seit 4 Monaten !!! Gruß Christoph |
Re: Druckerstatus
Zitat:
Zitat:
|
Re: Druckerstatus
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Mit dem Tool WinObj konnte ich jedoch keinen ähnlichen Namen finden, im Bild ist ein Auszug davon. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz