Kod: Tümünü seç
uses WinSpool,Printers;
function GetCurrentPrinterHandle: THandle;
var
Device, Driver, Port : array[0..255] of char;
hDeviceMode: THandle;
begin
Printer.GetPrinter(Device, Driver, Port, hDeviceMode);
if not OpenPrinter(@Device, Result, nil) then
RaiseLastWin32Error;
end;
procedure Yazdir;
var
...
F: TextFile;
PrinterName: string;
hPrinter : THandle;
pInfo: PPrinterInfo2;
bytesNeeded: DWORD;
begin
PrinterName:= '';
Printer.PrinterIndex := -1; // set to default printer
hprinter := GetCurrentPrinterHandle;
try
Winspool.GetPrinter( hPrinter, 2, Nil, 0, @bytesNeeded );
pInfo := AllocMem( bytesNeeded );
try
Winspool.GetPrinter( hPrinter, 2, pInfo, bytesNeeded, @bytesNeeded );
try
PrinterName:= Format( '%s', [pInfo^.pServerName]) + '\' + Format( '%s',[pInfo^.pShareName]);
except
PrinterName:= 'LPT1';
end;
finally
FreeMem( pInfo );
end;
finally
ClosePrinter( hPrinter );
end;
Assignfile(F, PrinterName);
...
end;