程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi中獲取打印機設備名和端口名

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;
  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved