如何判断是否安装了打印机?(50分)

  • 主题发起人 tianyusharp
  • 开始时间
T

tianyusharp

Unregistered / Unconfirmed
GUEST, unregistred user!
如何判断是否安装了打印机?
 
可以打印测试页,如果可以的话,就证明打印机装上了!
 
uses Printers;
然后通过printer.printers.count来决定打印机的个数,0为没有打印机。
 
Printers是专门用来控制打印机的,可是在没有安装打印机时,却会提示I/O错误,所以必须有一个检测是否存在打印机的方法,我试过很多方法,可是I/O错误总是比我的判断早出现,所以采用以下的烂招来检测打印机。首先在uses增加Printers,再准备一个列表框ComboBox1,其属性Visible设为FALSE,然后在打印之前执行下列语句,那么就可以检测到是否存在打印机了:

procedure TForm1.ButtonClick(Sender: Tobject);
begin
ComboBox1.Clear;
ComboBox1.Items.Assign(Printer.Printers);
if ComboBox1.Items.CommaText='' then
Messagedlg('你需要安装打印机才能打印!',mtError,[mbOk],0);
else
Form1.Print;
end;
 
var
Device:array[0..cchDeviceName-1]of char;
Driver:array[0..MAX_PATH-1] of char;
port:array[0..32] of char;
hDMode:THandle;
begin
printer.GetPrinter(Device,Driver,port,hDMode);
if printer.PrinterIndex=0 then Messagedlg('你需要安装打印机才能打印!',mtError,[mbOk],0);
end;
 

Similar threads

顶部