Einzelnen Beitrag anzeigen

noisy_master

Registriert seit: 17. Jun 2009
Ort: Wolfenbüttel/Baddeckenstedt
257 Beiträge
 
Delphi XE5 Professional
 
#24

AW: Kassenlade öffnen

  Alt 24. Jun 2014, 11: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
  Mit Zitat antworten Zitat