![]() |
Druckerstatus ermitteln und anzeigen
Liste der Anhänge anzeigen (Anzahl: 1)
Ich versuche mich gerade daran einen eigenen Drucker Dialog zu erstellen, quasi den Dialog der erscheint beim Aufruf von PrintDialog.Execute nach zu bilden.
Das ganze findet mit Delphi 2007 unter Windows XP statt. Bisher sieht alles gut aus nur habe ich noch so meine Probleme mit dem Status des Druckers. Ich bekomme zwar einen Status abgefragt jedoch nur als Cardinal und da frage ich mich komme ich irgendwie an die entsprechenden Texte oder muss ich die selbst machen?! Was mich auch stutzig macht ist das diese Drucker quasi 2 Status Informationen bereithält. "Wenig Toner" und "0 Dokumente warten" zu letzterem konnte ich kein Status Flag in der WinSpool.pas finden. (Siehe Anhang) Ich würde mich wohl schon zufrieden geben wenn ich eine offizielle Liste finden würde mit der ich den Status in deutsch umwandeln könnte.
Delphi-Quellcode:
var
ADevice: array[0..MAX_PATH-1] of Char; ADriver: array[0..MAX_PATH-1] of Char; APort: array[0..MAX_PATH-1] of Char; ADeviceMode: THandle; procedure TfrmPartsListPrintDialog.cmbPrinterSelect(Sender: TObject); var hPrinter: THandle; BytesNeeded: DWORD; pInfo: PPrinterInfo2; begin //Drucker auswähl ändern Printer.PrinterIndex := cmbPrinter.ItemIndex; //Neuen Drucker auswählen Printer.GetPrinter(ADevice, ADriver, APort, ADeviceMode); if OpenPrinter(ADevice, hPrinter, nil) then begin try GetPrinter(hPrinter, 2, nil, 0, @BytesNeeded); pInfo := AllocMem(BytesNeeded); try GetPrinter(hPrinter, 2, pInfo, BytesNeeded, @BytesNeeded); //Hier käme sowas wie "StatusToString" hin ... lblType.Caption := pInfo^.pDriverName; lblLocation.Caption := pInfo^.pLocation; lblComment.Caption := pInfo^.pComment; finally FreeMem(pInfo); end;{try..finally} finally ClosePrinter(hPrinter); end;{try..finally} end;{if} end; |
AW: Druckerstatus ermitteln und anzeigen
Die "offizielle Liste" findest Du
![]() |
AW: Druckerstatus ermitteln und anzeigen
Danke aber in Englisch nützt mir die Liste nicht viel. Ich hatte gehofft es gäbe bereits eine vollständige Liste mit den deutschen Texten.
|
AW: Druckerstatus ermitteln und anzeigen
Ja die gibt es. Aber da ist die Übersetzung einfacher, da alle Englisch-Deutschen strings von Windows enthalten sind (ca. 40 MB).
|
AW: Druckerstatus ermitteln und anzeigen
Sorry aber ich verstehe nicht was du meinst.
Wo gibt es den diese Liste? |
AW: Druckerstatus ermitteln und anzeigen
Auf
![]() |
AW: Druckerstatus ermitteln und anzeigen
Da man scheinbar einen Account mit entsprechendem Abonnement benötigt, was ich nicht habe, nützt mir das immer noch nichts.
|
AW: Druckerstatus ermitteln und anzeigen
In der Zeit in der du genau die passenden Strings im Netz gesucht hast, hast du die paar da doch 20 Mal übersetzt. Und wenn es an der Sprache hapert: Die Dinger sind simpel genug, um mit Google sehr gute Ergebnisse zu erzielen. Und da du die Zielsprache ja kennst (;)) kannst du die Ergebnisse sogar noch auf Plausibilität prüfen und ggf. richten.
|
AW: Druckerstatus ermitteln und anzeigen
Das ist mir schon klar Medium, wie gesagt ich hatte nur gehofft irgendwie durch API Befehl an die Texte
zu kommen. Und da ich gerne die gleichen Texte anzeigen würde wie sie z.b. in der Druckerwarteschlange von Windows bzw. dem TPrintDialog vorkommen, wäre es zu schön gewesen zu sein zumindest eine offizielle Liste zu bekommen. Es ist ja sowieso schon komisch warum in der Windows Druckerwarteschlange steht "Niedriger Tonerstand" und bei TPrintDialog steht "Wenig Toner; 0 Dokumente warten". Wobei ich glaube das dieses "0 Dokumente warten" noch irgendein Drucker spezifischer Status ist der von wo auch immer her kommt. |
AW: Druckerstatus ermitteln und anzeigen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 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-2025 by Thomas Breitkreuz