海宏原创:给USB口的打印机发ESC转义指令开钱箱 海宏原创:给USB口的打印机发ESC转义指令开钱箱 var sMoneyBoxOpenCommand='海宏软件,不同的打印机,指令不同'; TOutBufPassThrough = record //调用windows.extEscape可以直接用extEscape(handle, PASSTHROUGH, sizeOf(outBuf), @outBuf, 0, nil)向设备发送esc命令 nDataLen:word; sEscData:array [0..1024] of char; end; var prt:TPrinter; esc:TOutBufPassThrough; try //驱动开 prt:=printers.Printer; prt.beginDoc; //没办法,必须的 esc.nDataLen:=length(sMoneyBoxOpenCommand); strpCopy(esc.sEscData, sMoneyBoxOpenCommand); windows.ExtEscape(prt.Handle, PASSTHROUGH, sizeOf(esc), @esc, 0, nil); PASSTHROUGH:允许程序直接发送数据到设备 prt.endDoc; //这里会导致打印机走一小段纸,也没找到好办法 except on x:Exception do ; end; 另外,可以用printers.assignprt直接向USB口打印机写字符,但是lpt口的可以直接发esc指令开钱箱,usb口的却怎么也不行。