Registriert seit: 17. Jun 2009
Ort: Wolfenbüttel/Baddeckenstedt
260 Beiträge
Delphi XE5 Professional
|
AW: Kassenlade öffnen
24. Jun 2014, 12:20
Hi,
nachdem ich dann auch schon viele hilfreiche Tricks hier aus dem Forum bekommen habe möchte ich auch endlich gerne mal helfen )
SO mache ich es:
Delphi-Quellcode:
procedure OpenCashDrawer;
var
hPrinter, hDeviceMode: THandle;
N: DWORD;
DocInfo1: TDocInfo1;
Device, Driver, Port: array [0 .. 255] of Char;
PrinterName, ThePrinter: string;
Code: AnsiString;
begin
begin
Code := AnsiChar(27) + AnsiChar(112) + AnsiChar(0) + AnsiChar(64) + AnsiChar(240);
Printer.PrinterIndex := Printer.Printers.IndexOf('Name deines druckers');
Printer.GetPrinter(Device, Driver, Port, hDeviceMode);
PrinterName := Format('%s', [Device]);
if not WinSpool.OpenPrinter(PChar(PrinterName), hPrinter, nil) then
begin
ShowMessage('Error : ' + IntToStr(GetLastError));
Exit;
end;
with DocInfo1 do
begin
pDocName := 'Test';
pOutputFile := nil;
pDataType := 'RAW';
end;
WinSpool.StartDocPrinter(hPrinter, 1, @DocInfo1);
WinSpool.StartPagePrinter(hPrinter);
WinSpool.WritePrinter(hPrinter, PAnsiChar(Code), Length(Code), N);
WinSpool.EndPagePrinter(hPrinter);
WinSpool.EndDocPrinter(hPrinter);
WinSpool.ClosePrinter(hPrinter);
end;
end;
Hope it helps!
P.S.: geht bestimmt eleganter, aber....
Dirk
|
|
Zitat
|