Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Informationen über Druckerstatus funzt nicht (https://www.delphipraxis.net/11897-informationen-ueber-druckerstatus-funzt-nicht.html)

ustra 16. Nov 2003 14:47


Informationen über Druckerstatus funzt nicht
 
Hallo,

ich habe folgendes geschrieben:

Delphi-Quellcode:
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;
Mit diesem Code lese ich Informationen über den Druckerstatus aus. Das Problem ist, dass er bei
Delphi-Quellcode:
if GetPrinterStatus(hd) <> 0
    then showMessage('yippi');
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.

Beste Grüße
Ulrich

ustra 16. Nov 2003 14:56

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