Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Druckerstatus (https://www.delphipraxis.net/90089-druckerstatus.html)

Christoph Frank 21. Apr 2007 11:14

Re: Druckerstatus
 
Hallo Olli,

Sysinternals bei Microsoft.com?
Ist das auch für Win98, ich habe nur Win98.
Gruß Christoph

Olli 22. Apr 2007 01:01

Re: Druckerstatus
 
Zitat:

Zitat von bitsetter
Unter Win98 wo es funktioniert USBPRN01 und unter WinXP wo es nicht funktioniert USB001. Bei mir also ohne Doppelpunkt.

Faszinierend. Sowas wie unter 98 haette ich fuer XP eigentlich auch erwartet. Zumindest gibt es dort keinen Doppelpunkt im Namen. Ich bin im Moment noch etwas verwirrt (und im Eierlikoerdelirium :mrgreen:). Werde mich mal zum Thema USB-Stack schlaumachen und mich dann melden. Ggf. braucht es eine Erinnerung, falls ich es vergesse.

OT: Auch ein WM-Fan, wie ich sehe?! Auch Eule-Leser? :stupid:

Zitat:

Zitat von Christoph Frank
Sysinternals bei Microsoft.com?

Ja, die wurden vor fast einem Jahr von MS geschluckt.

Zitat:

Zitat von Christoph Frank
Ist das auch für Win98, ich habe nur Win98.

Nein, leider nicht. Auf Windows 98 gibt es meines Wissens nach nichts vergleichbares zum Windows NT Object Manager. Der ist unter NT dafuer zustaendig, dass dem Win32-Subsystem die ueblichen DOS-Namen sessionweise zur Verfuegung stehen. Vor gut einem Jahr gab es dazu auch einen Artikel von Marcel van Brakel und mir im TDM.

shmia 23. Apr 2007 10:44

Re: Druckerstatus
 
Also ich versuch's nochmal :|
Man braucht nicht zu prüfen, ob der Drucker online und bereit ist; das erledigt schon Windows.
Man sollte nur prüfen, ob zu viele Druckaufträge im Spooler liegen.

Der Benutzer könnte ja auch einen Laptop haben. In der Dockingstation kann er normal drucken
da dort ein Drucker angeschlossen ist.
Unterwegs kann er nicht drucken, aber das ist kein Problem, der Spooler druckt, sobald der Rechner
in der Dockingstation ist.

Ansonsten:
Immer zuerst mit GetPrinter() den Level 6 abfragen, sollte das misslingen (Returnwert prüfen), dann erfolgt
ein Fallback auf Level 2.

Olli 23. Apr 2007 11:36

Re: Druckerstatus
 
Zitat:

Zitat von shmia
Also ich versuch's nochmal :|
Man braucht nicht zu prüfen, ob der Drucker online und bereit ist; das erledigt schon Windows.
Man sollte nur prüfen, ob zu viele Druckaufträge im Spooler liegen.

Das ist IMO in zweierlei Hinsicht eine Fehleinschätzung.
1. Manche Drucker haben genug Speicher um hunderte Seiten Text mit ein paar Fontinfos aufzunehmen. Sobald es also an den Drucker geschickt ist, waere damit deine Methode zum Scheitern verdammt.
2. Handelt es sich um einen Drucker welcher auf die eine oder andere Weise an einem Printserver angeschlossen ist, ist die Einschätzung ob die Druckerwarteschlange voll ist oder nicht garnicht so einfach zu treffen.

Christoph Frank 24. Apr 2007 13:39

Re: Druckerstatus
 
Hallo zusammen,

ich habe mir das mit dem 'EPUSB1:' noch einmal genauer angesehen.
In Drucker/Einstellungen/Details steht bei mir bei nicht eingeschaltetem Drucker:

EPUSB1: (USB-Schnittstelle nicht angeschlossen)

Bei eingeschaltetem Drucker:

EPUSB1: (EPSON Stylus DX5000)
Ich nehme an, daß bei seriellen oder parallelen Anschlüssen die o.g. Routine funktioniert, nicht aber bei Abschlüssen über USB. Vielleicht würde ich mit meinem Problem weiterkommen, wenn mir jemand sagen könnte, wie ich den Anschluß zusätzlich zu den eventuellen Druckermeldungen prüfen könnte. Es hat ja nicht jeder einen Drucker über USB angeschlossen. In meiner Anwendung müßte ich halt alle eventuell möglichen Anschlüsse überprüfen können.
Gruß Christoph

Olli 24. Apr 2007 13:50

Re: Druckerstatus
 
Okay, habe zufaellig, da ich mich mal wieder in Dtl. aufhalte, einen USB-Drucker. Wenn ich es schaffe, schaue ich da mal heute im Laufe des Abends rein. Ansonsten muss es warten. Limit ist in knapp 2 Wochen, dann geht's zurueck ;)

bitsetter 24. Apr 2007 19:28

Re: Druckerstatus
 
Hi,

Zitat:

Zitat von Christoph Frank
Ich nehme an, daß bei seriellen oder parallelen Anschlüssen die o.g. Routine funktioniert, nicht aber bei Abschlüssen über USB. Vielleicht würde ich mit meinem Problem weiterkommen, wenn mir jemand sagen könnte, wie ich den Anschluß zusätzlich zu den eventuellen Druckermeldungen prüfen könnte. Es hat ja nicht jeder einen Drucker über USB angeschlossen. In meiner Anwendung müßte ich halt alle eventuell möglichen Anschlüsse überprüfen können.
Gruß Christoph

wie du weiter oben sehen kannst, habe ich unter Win98 meinen Drucker auch an einen USB Anschluss angeschlossen und es funktioniert bei mir wunderbar.

Unter WinXP konnte ich mit diesem \\?\USB#Vid_04a9&Pid_1062#6013TT#{28d78fad-5a12-11d1-ae5b-0000f803a8c2} Wert testen ob mein Drucker offline ist. Den hatte ich mit Regmon herausgefunden, wenn ich den USB Stecker vom Drucker reingesteckt bzw rausgezogen hatte. Das ist übrigens einer der Werte den auch das Tool WinObj angezeigt hatte.

Zitat:

Zitat von Christoph Frank
ich habe mir das mit dem 'EPUSB1:' noch einmal genauer angesehen.
In Drucker/Einstellungen/Details steht bei mir bei nicht eingeschaltetem Drucker:

EPUSB1: (USB-Schnittstelle nicht angeschlossen)

Bei eingeschaltetem Drucker:

EPUSB1: (EPSON Stylus DX5000)

Bei WinXP unter Drucker und Faxgeräte steht Offline, wenn der Drucker nicht eingeschaltet wurde.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 Uhr.
Seite 3 von 3     123   

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