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
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 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;
Angehängte Grafiken
Dateityp: png Druckerdialog.png (22,9 KB, 71x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 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)
609 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.492 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)
609 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.492 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
Antwort Antwort


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 14:26 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