1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
procedure TForm1.FormCreate(Sender: TObject);
var
dwSpaceNeeded: DWORD;
lpPrintInfo2: PPrinterInfo2;
hPrinter: THandle;
IndPrinter, IndPrinter2 : Integer;
pd : TPrinterDefaults;
begin
pd.DesiredAccess := PRINTER_ALL_ACCESS;
pd.pDatatype := nil;
pd.pDevMode := nil;
IndPrinter := Printer.Printers.IndexOf('imprimante1');
if IndPrinter >=0 then // imprimante1 existe
begin
// Set structure memory to nil
lpPrintInfo2:=nil;
// Resource protection
try
// Open the printer
if (OpenPrinter(PChar(Printer.Printers[IndPrinter]), hPrinter, @pd)) then
begin
// Get required memory size
GetPrinter(hPrinter, 2, lpPrintInfo2, 0, @dwSpaceNeeded);
// Allocate memory
lpPrintInfo2:=AllocMem(dwSpaceNeeded);
// Get printer info
GetPrinter(hPrinter, 2, lpPrintInfo2, dwSpaceNeeded, @dwSpaceNeeded);
lpPrintInfo2.pPrinterName := PChar('imprimante2');
lpPrintInfo2.pComment := PChar('tutu');
// Set printer
if not SetPrinter(hPrinter, 2, lpPrintInfo2, 0) then
begin // Display error information
ShowMessage('Erreur Renommage'+ SysErrorMessage(GetLastError) + inttostr(GetLastError));
end;
// Close the printer
Closeprinter(hPrinter);
end else // if OpenPrinter
begin
ShowMessage('Probleme ouverture imprimante 1'+ SysErrorMessage(GetLastError) + inttostr(GetLastError));
end;
finally
// Free memory if assigned
if Assigned(lpPrintInfo2) then FreeMem(lpPrintInfo2);
end;
end. |
Partager