当前位置:编程学习 > Delphi >>

Delphi中获取打印机设备名和端口名

 

uses Printers;

{$IFNDEF WIN32}
const MAX_PATH = 144;
{$ENDIF}

procedure TForm1.Button1Click(Sender: TObject);
var
 pDevice : pChar;
 pDriver : pChar;
 pPort   : pChar;
 hDMode : THandle;
begin
 if PrintDialog1.Execute then begin
   GetMem(pDevice, cchDeviceName);
   GetMem(pDriver, MAX_PATH);
   GetMem(pPort, MAX_PATH);
   Printer.GetPrinter(pDevice, pDriver, pPort, hDMode);
   if lStrLen(pDriver) = 0 then begin
     GetProfileString(Devices, pDevice, , pDriver, MAX_PATH);
     pDriver[pos(,, pDriver) - 1] := #0;
   end;
   if lStrLen(pPort) = 0 then begin
     GetProfileString(Devices, pDevice, , pPort, MAX_PATH);
     lStrCpy(pPort,  @pPort[lStrLen(pPort)+2]);
   end;
   Memo1.Lines.Add(Device := + StrPas(pDevice));
   Memo1.Lines.Add(Driver := + StrPas(pDriver));
   Memo1.Lines.Add(Port := + StrPas(pPort));
   FreeMem(pDevice, cchDeviceName);
   FreeMem(pDriver, MAX_PATH);
   FreeMem(pPort, MAX_PATH);
 end;
end;

 

补充:软件开发 , Delphi ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,