Delphi32.com - Home!
| Home/News | Downloads | Forums | D32 Magazine | Resources | Info and Facts |  
 
 Getting the Printer driver and port name from TPrinter's


How can I get the Printer driver and port name from TPrinter's GetPrinter() method?   

    Sometimes, these parameters will return blank string. You can use the Windows API function GetProfileString() to retrieve the associated driver and port from the Windows.ini file. Example:

    uses Printers;
    {$IFNDEF WIN32}
     const MAX_PATH =  44;
    {$ENDIF}
    procedure TForm .Button Click(Sender: TObject);
    var
      pDevice : pChar;
      pDriver : pChar;
      pPort   : pChar;
      hDMode : THandle;
    begin
      if PrintDialog .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) -  ] := #0;
        end;
        if lStrLen(pPort) = 0 then begin
          GetProfileString('Devices', pDevice, '', pPort, MAX_PATH);
          lStrCpy(pPort,  @pPort[lStrLen(pPort)+2]);
        end;
        Memo .Lines.Add('Device := ' + StrPas(pDevice));
        Memo .Lines.Add('Driver := ' + StrPas(pDriver));
        Memo .Lines.Add('Port := ' + StrPas(pPort));
        FreeMem(pDevice, cchDeviceName);
        FreeMem(pDriver, MAX_PATH);
        FreeMem(pPort, MAX_PATH);
      end;
    end;
    
    4/2/99

     



  << Previous Faq     Complete List     Next Faq >>  



 
 Hits/month  2,500,000+ 
 Downloads
 (Since May 2000)
 7,393,709 
 Total Files  6,023 
 Forum msgs  7,670 
 Articles/FAQs  70+/900+ 
Kylix
Tips n Tricks
FAQs
Knowledge Base
Bug Listings
Articles
Books
Newsgroups
Links
Submissions
Testimonials
Advertising
Contact Us
About Us
Search Amazon:
Top Selling Software at Amazon

| Home/News | Downloads | Forums | Resources | Info and Facts | Testimonials |
  Site Search:
 


Comments/Problems: Webmaster@delphi32.com
Copyright © 1998-2006, Delphi32.com. All rights reserved.
Terms of Use