Как программно добавить принтер? |
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