关于C#程序实现打印机上弹钱箱的功能

抢不到就去偷 2015-09-07 02:37:54
这是我在网上搜到的一段代码,

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace BarCodeLibrary
{
public class ZebraGesigner
{
[StructLayout(LayoutKind.Sequential)]
private struct OVERLAPPED
{
int Internal;
int InternalHigh;
int Offset;
int OffSetHigh;
int hEvent;
}
[DllImport("kernel32.dll")]
private static extern int CreateFile(string lpFileName, uint dwDesiredAccess, int dwShareMode, int lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, int hTemplateFile);
[DllImport("kernel32.dll")]
private static extern bool WriteFile(int hFile, byte[] lpBuffer, int nNumberOfBytesToWriter, out int lpNumberOfBytesWriten, out OVERLAPPED lpOverLapped);
[DllImport("kernel32.dll")]
private static extern bool CloseHandle(int hObject);
[DllImport("fnthex32.dll")]
public static extern int GETFONTHEX(string barcodeText,string fontName,int orient,int height,int width,int isBold,int isItalic,StringBuilder returnBarcodeCMD);
private int iHandle;
//打开LPT 端口
public bool Open()
{
iHandle = CreateFile("lpt1", 0x40000000, 0, 0, 3, 0, 0);
if (iHandle != -1)
{
return true;
}
else
{
return false;
}
}
//打印函数,参数为打印机的命令或者其他文本!
public bool Write(string MyString)
{
if (iHandle != 1)
{
int i;
OVERLAPPED x;
byte[] mybyte = System.Text.Encoding.Default.GetBytes(MyString);
return WriteFile(iHandle, mybyte, mybyte.Length, out i, out x);
}
else
{
throw new Exception("端口未打开~!");
}
}
     //关闭打印端口
public bool Close()
{
return CloseHandle(iHandle);
}
}
}

vate void button1_Click(object sender, EventArgs e)
{
ZebraGesigner zb = new ZebraGesigner();
string mycommanglines = System.IO.File.ReadAllText("print.txt");//print.txt里写了条码机的命令
zb.Open();
zb.Write(mycommanglines);
zb.Close();
}


我想问下在print.tex文件里该怎么写,
...全文
306 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2015-09-08
  • 打赏
  • 举报
回复
这就好比你想使用打印机,就得安装打印机驱动一样 否则就自己破解打印机的通信协议,然后给它直接发对应的指令
於黾 2015-09-08
  • 打赏
  • 举报
回复
我TM还得24小时盯着你的回复? 什么素质啊 既然厂家提供了驱动,驱动程序就是用来跟钱箱通信的,你不安装驱动程序,就得自己研究怎么跟钱箱通信 这跟打印机本来就没有一毛钱关系
抢不到就去偷 2015-09-08
  • 打赏
  • 举报
回复
引用 5 楼 Z65443344 的回复:
能说中文吗 根本没看懂你想表达什么 放出一大堆无关的代码,也不知道你想闹哪样 钱箱跟打印机本来也不是一个设备,通过打印机弹钱箱??还头一次听说 打印机还能用来干什么,能通过打印机给我的银行卡里转点钱不?
泥马勒戈壁的,装完B就走了,冲大头啊!你这种沙比!
拜一刀 2015-09-07
  • 打赏
  • 举报
回复
网上好像有设置,不用代码,打印之后弹钱箱
抢不到就去偷 2015-09-07
  • 打赏
  • 举报
回复
引用 5 楼 Z65443344 的回复:
能说中文吗 根本没看懂你想表达什么 放出一大堆无关的代码,也不知道你想闹哪样 钱箱跟打印机本来也不是一个设备,通过打印机弹钱箱??还头一次听说 打印机还能用来干什么,能通过打印机给我的银行卡里转点钱不?
其实打印机驱动里带有一个功能就是在打印之前自动弹钱箱的,但是由于更新驱动比较费事,所以我想做一个小程序,添加收银系统里面,就相当于是在界面上弄个按钮,点击按钮钱箱自动弹出。
抢不到就去偷 2015-09-07
  • 打赏
  • 举报
回复
引用 5 楼 Z65443344 的回复:
能说中文吗 根本没看懂你想表达什么 放出一大堆无关的代码,也不知道你想闹哪样 钱箱跟打印机本来也不是一个设备,通过打印机弹钱箱??还头一次听说 打印机还能用来干什么,能通过打印机给我的银行卡里转点钱不?
是这样的,等于就是一个收银系统,想要一个弹钱箱的功能, 机器上有打印机,还有钱箱,在每次打印机打发票开始的时候,让钱箱自动弹出。我现在也很没有头绪,在网上搜了点代码也不知道对不对。
於黾 2015-09-07
  • 打赏
  • 举报
回复
能说中文吗 根本没看懂你想表达什么 放出一大堆无关的代码,也不知道你想闹哪样 钱箱跟打印机本来也不是一个设备,通过打印机弹钱箱??还头一次听说 打印机还能用来干什么,能通过打印机给我的银行卡里转点钱不?
抢不到就去偷 2015-09-07
  • 打赏
  • 举报
回复
来人来人来人
抢不到就去偷 2015-09-07
  • 打赏
  • 举报
回复
引用 2 楼 Asa_Jim 的回复:
这个严格来说 你需要你的钱箱的厂商来提供Demo!
就是指令对吧
  • 打赏
  • 举报
回复
这个严格来说 你需要你的钱箱的厂商来提供Demo!
抢不到就去偷 2015-09-07
  • 打赏
  • 举报
回复
来高手呀!!!

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧