D
demonP
Unregistered / Unconfirmed
GUEST, unregistred user!
为了获得默认打印机的当前状态(正在打印、缺纸等),
在DELPHI中使用了如下代码:
procedure TForm1.Button1Click(Sender: TObject);
var hprint:THandle;
sp:String;
ttointer;
ddWord;
bb:boolean;
i:integer;
begin
sp:=copy(Printer.printers[printer.printerIndex],1,
pos(' on ',Printer.printers[printer.printerIndex])-1);
OpenPrinter(pchar(sp),hPrint,nil);
if getprinter(hprint,2,tt,0,pdword(@dd)) then
showmessage('True');
Getmem(tt, dd );
if getprinter(hprint,2,tt,dd,pdword(@dd)) then
showmessage('True');
i:=(Pprinterinfo2(tt)).status;
FreeMem(tt);
showmessage(inttostr(i));
ClosePrinter(hPrint);
end;
以上代码无语法错误,可以顺利执行。执行完GETPRINTER后,TT记录中
的各项(例如打印机名等)都能正确返回,但STATUS项始终是0。不知为何?
讨论区里有个同样的问题,我比较了一下,好象和我上面的
做法是一样的,真是不明白,请高手指点,急!谢谢!
在DELPHI中使用了如下代码:
procedure TForm1.Button1Click(Sender: TObject);
var hprint:THandle;
sp:String;
ttointer;
ddWord;
bb:boolean;
i:integer;
begin
sp:=copy(Printer.printers[printer.printerIndex],1,
pos(' on ',Printer.printers[printer.printerIndex])-1);
OpenPrinter(pchar(sp),hPrint,nil);
if getprinter(hprint,2,tt,0,pdword(@dd)) then
showmessage('True');
Getmem(tt, dd );
if getprinter(hprint,2,tt,dd,pdword(@dd)) then
showmessage('True');
i:=(Pprinterinfo2(tt)).status;
FreeMem(tt);
showmessage(inttostr(i));
ClosePrinter(hPrint);
end;
以上代码无语法错误,可以顺利执行。执行完GETPRINTER后,TT记录中
的各项(例如打印机名等)都能正确返回,但STATUS项始终是0。不知为何?
讨论区里有个同样的问题,我比较了一下,好象和我上面的
做法是一样的,真是不明白,请高手指点,急!谢谢!