| ardahan | 08.03.2004 - 15:17:24 |
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; | |