AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Druckerstatus ermitteln und anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Druckerstatus ermitteln und anzeigen

Ein Thema von TUX_der_Pinguin · begonnen am 2. Nov 2012 · letzter Beitrag vom 5. Nov 2012
Antwort Antwort
Seite 1 von 2  1 2      
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#1

Druckerstatus ermitteln und anzeigen

  Alt 2. Nov 2012, 10:54
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;
Miniaturansicht angehängter Grafiken
druckerdialog.png  
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Druckerstatus ermitteln und anzeigen

  Alt 2. Nov 2012, 11:41
Die "offizielle Liste" findest Du hier unter Status.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Druckerstatus ermitteln und anzeigen

  Alt 2. Nov 2012, 12:08
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.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Druckerstatus ermitteln und anzeigen

  Alt 2. Nov 2012, 12:12
Ja die gibt es. Aber da ist die Übersetzung einfacher, da alle Englisch-Deutschen strings von Windows enthalten sind (ca. 40 MB).
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Druckerstatus ermitteln und anzeigen

  Alt 2. Nov 2012, 12:15
Sorry aber ich verstehe nicht was du meinst.

Wo gibt es den diese Liste?
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Druckerstatus ermitteln und anzeigen

  Alt 2. Nov 2012, 12:19
Auf der Seite findest Du alle Informationen die Du benötigst.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Druckerstatus ermitteln und anzeigen

  Alt 2. Nov 2012, 12:38
Da man scheinbar einen Account mit entsprechendem Abonnement benötigt, was ich nicht habe, nützt mir das immer noch nichts.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#8

AW: Druckerstatus ermitteln und anzeigen

  Alt 2. Nov 2012, 14:09
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.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Druckerstatus ermitteln und anzeigen

  Alt 2. Nov 2012, 15:00
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.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#10

AW: Druckerstatus ermitteln und anzeigen

  Alt 2. Nov 2012, 16:26
Wobei ich glaube das dieses "0 Dokumente warten" noch irgendein Drucker spezifischer Status ist der von wo auch immer her kommt.
Die Zahl der Dokumente ist einfach die Anzahl der Dokumente (= Druckjobs) im Spooler die auf ihre Abfertigung warten.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz