![]() |
Informationen über Druckerstatus funzt nicht
Hallo,
ich habe folgendes geschrieben:
Delphi-Quellcode:
Mit diesem Code lese ich Informationen über den Druckerstatus aus. Das Problem ist, dass er bei
procedure TForm1.Button2Click(Sender: TObject);
type TPrinterInfo=Printer_Info_2; PPrinterInfo=^TPrinterInfo; var hd : THandle; str : PPrinterInfo; byt : Cardinal; p : array[0..255] of char; begin hd:=GetPrinterHandle(GetStandardPrinter); if GetPrinterStatus(hd) <> 0 then showMessage('yippi'); end; function TForm1.GetPrinterStatus(PHandle:THandle):integer; type TPrinterInfo=Printer_Info_6; PPrinterInfo=^TPrinterInfo; var BytesNeeded:Cardinal; PInfo:PPrinterInfo; ok:boolean; begin result:=-1; //Speicherbedarf lesen GetPrinter(PHandle,6,nil,0,@BytesNeeded); PInfo:=AllocMem(BytesNeeded); //Daten holen ok:=GetPrinter(PHandle,6,PInfo,BytesNeeded,@BytesNeeded); if (ok=true) then begin Result:=integer(PInfo.dwStatus); end end; function TForm1.GetPrinterHandle(PrinterName:string):THandle; var P:array[0..255]of Char; begin StrPCopy(P,PrinterName); if OpenPrinter(@P, Result, nil)=FALSE then Result:=0; end; function TForm1.GetStandardPrinter():String; var s:string; prn:TPrinter; var ResStr: array[0..255] of Char; begin s:='NA'; prn:=printer(); //Drucker installiert ? if (prn.printers.count>0) then begin //Druckername holen GetProfileString('Windows', 'device', '', ResStr, 255); s := Trim(StrPas(ResStr)); end; //Druckernamen formatieren if (s='') then s:='NA'; s:=copy(s,0,Pos(',',s)-1); Result:=trim(s); end;
Delphi-Quellcode:
immer den Wert 0 zurückliefert. Wenn der Wert <> 0 ist, habe ich eine entsprechende Information. Weiss jemand, wo das Problem leigen könnte. Ich habe da die Vermutung, dass es nicht geht, weil der Drucker über USB angeschlossen ist.
if GetPrinterStatus(hd) <> 0
then showMessage('yippi'); Beste Grüße Ulrich |
Re: Informationen über Druckerstatus funzt nicht
Hallo,
mist, das war ein posting umsonst. Ich hatte eigentlich erwartet, wenn der Drucker an ist, dass der WErt ungleich sit. Ich habe nun noch mal den Drucker angehalten und siehe da, es funktioniert. NIchts für ungut. Ulrich |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:59 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