Как программно добавить принтер.
Компилятор: Delphi
Чтобы программно добавить принтер, необходимо
воспользоваться API функцией AddPrinter, которая имеет
три параметра:
1) имя принтера
2) уровень печати
3) описание принтера
Следующий пример является надстройкой для этой
функции. Для этого необходимо знать Имя принтера,
которое будет отображаться в Проводнике, имя
порта, к которому подключён принтер (т.е. LPT1:), имя
драйвера (прийдётся посмотреть вручную) и имя
процессора печати (который обычно "winprint").
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.
|