Как программно добавить принтер?

Previous  Top  Next

    
 

 

 

Чтобы программно добавить принтер, необходимо воспользоваться API функцией AddPrinter, которая имеет три параметра:

 

·Имя принтера
·Уровень печати
·Описание принтера

 

Следующий пример является надстройкой для этой функции. Для этого необходимо знать Имя принтера, которое будет отображаться в Проводнике, имя порта, к которому подключён принтер (т.е. LPT1:), имя драйвера (прийдётся посмотреть вручную) и имя процессора печати (который обычно "winprint").

 

Code:

unit unit_AddPrinter;

 

interface

 

function AddAPrinter(PrinterName, PortName,

DriverName, PrintProcessor: string): boolean;

 

implementation

 

uses

SysUtils,

WinSpool,

Windows;

 

function AddAPrinter(PrinterName, PortName,

DriverName, PrintProcessor: string):     boolean;

var

pName: PChar;

Level: DWORD;

pPrinter: PPrinterInfo2;

begin

 

pName := nil;

Level := 2;

New(pPrinter);

pPrinter^.pServerName := nil;

pPrinter^.pShareName := nil;

pPrinter^.pComment := nil;

pPrinter^.pLocation := nil;

pPrinter^.pDevMode := nil;

pPrinter^.pSepFile := nil;

pPrinter^.pDatatype := nil;

pPrinter^.pParameters := nil;

pPrinter^.pSecurityDescriptor := nil;

pPrinter^.Attributes := 0;

pPrinter^.Priority := 0;

pPrinter^.DefaultPriority := 0;

pPrinter^.StartTime := 0;

pPrinter^.UntilTime := 0;

pPrinter^.Status := 0;

pPrinter^.cJobs := 0;

pPrinter^.AveragePPM :=0;

 

pPrinter^.pPrinterName := PCHAR(PrinterName);

pPrinter^.pPortName := PCHAR(PortName);

pPrinter^.pDriverName := PCHAR(DriverName);

pPrinter^.pPrintProcessor := PCHAR(PrintProcessor);

 

if AddPrinter(pName, Level, pPrinter) <> 0 then

   Result := true

else

begin

   // ShowMessage(inttostr(GetlastError));

   Result := false;

end;

end;

 

end.

 

 

 

©Drkb::03212

       

Взято с http://delphiworld.narod.ru