c#程序调用USB条码打印机

bing2057 2013-01-25 01:39:14
我现在开发一个winforms程序,需要条码打印功能,程序是这样的,我先做好条码指令文本,然后通过c#程序发送指令集去条码打印机,条码打印机接到指令直接打印,我用的条码打印机是Intermec PB32
...全文
1129 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuyue104 2013-03-20
  • 打赏
  • 举报
回复
引用 10 楼 mf19870602 的回复:
C# code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 private string filepath; private int iHandle; public D……
大神方便说下具体调用么?小弟不才,刚刚接触这个,实在太多不懂,还望大神多多指教!小弟QQ:53020959!如果大神看得起就加小弟QQ,小弟还望大神赐教
毛员外 2013-01-29
  • 打赏
  • 举报
回复
不是usb哦,呵呵,是设备的guid,说错了
毛员外 2013-01-29
  • 打赏
  • 举报
回复
CreateFile——创建文件 【参数】 1、lpFileName 一个指向无终结符的字符串的指针,来指明要创建或打开的对象的名字。 在Windows NT/2000/XP平台上:如果用ANSI版本的函数,字符串长度应限制在MAX_PATH;如果用Unicode版本的函数,这个限制可以扩充到32000个Unicode字符。 在Windows95/98/Me平台上:只能用ANSI版本的函数,字符串长度限制在MAX_PATH。 api说明: 这个函数可以创建或打开一个对象的句柄,凭借此句柄就可以控制这些对象: 控制台对象、通信资源对象、目录对象(只能打开)、磁盘设备对象、文件对象、邮槽对象、管道对象。 知道这个path了吧,把usb的guid找到在注册表里一搜索,类似如此字符串\\.\USB#Vid_0a5f&Pid_0053#41J110802054#{28d78fad-5a12-11d1-ae5b-0000f803a8c2},就是打印机的devicepath
bing2057 2013-01-28
  • 打赏
  • 举报
回复
引用 14 楼 sp1234 的回复:
引用 10 楼 mf19870602 的回复:C# code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 private string filepath; private int iH……
File.WriteAllText(path, message) 这两个参数path 和message是指什么??path,message是指什么?我曾经用过10楼的办法,打印机没反应
  • 打赏
  • 举报
回复
引用 10 楼 mf19870602 的回复:
C# code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 private string filepath; private int iHandle; public D……
晕死! 如果人家的驱动已经将端口输出映射为对一个文件的写入操作,那么你使用简单的文件写入代码 例如 File.WriteAllText(path, message) 就行了,用不着写这样一大堆调用api的东西出来。
  • 打赏
  • 举报
回复
从网上看到的,这种打印机: 支持的命令语言 • Fingerprint • Direct Protocol • Intermec 打印机语言 (IPL) • ESim • ZSim • DSim 你随便翻翻看,通过你的“c语言程序”发送给LPT1:或者其它端口既可。
  • 打赏
  • 举报
回复
引用 3 楼 bing2057 的回复:
不提供!!只提供了打印条码软件,但是现在我们自己的软件需要条码打印功能!!!用他们的软件做好指令,我们自己写程序发指令过去!!!
不提供指令手册么?
liduoduo 2013-01-26
  • 打赏
  • 举报
回复
可以使用报表打印吧,RDLC也可以啊
毛员外 2013-01-26
  • 打赏
  • 举报
回复
 private string filepath;
        private int iHandle;

        public Driver(string path)
        {
            this.filepath = path;
        }

        public bool Close()
        {
            return CloseHandle(this.iHandle);
        }

        [DllImport("kernel32.dll")]
        private static extern bool CloseHandle(int hObject);
        [DllImport("kernel32.dll")]
        private static extern int CreateFile(string lpFilename, uint dwDesiredAccess, int dwShareMode, int lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, int hTemplateFile);
        public bool Open()
        {
            this.iHandle = CreateFile(this.filepath, 3, 0, 0, 3, 0, 0);
            return (this.iHandle != -1);
        }

        public bool Write(string Mystring)
        {
            int num;
            OVERLAPPED overlapped;
            if (this.iHandle == -1)
            {
                throw new Exception("端口未打开!");
            }
            byte[] bytes = Encoding.Default.GetBytes(Mystring);
            return WriteFile(this.iHandle, bytes, bytes.Length, out num, out overlapped);
        }

        public bool Write(byte[] barray)
        {
            int num;
            OVERLAPPED overlapped;
            if (this.iHandle == -1)
            {
                throw new Exception("端口未打开!");
            }
            return WriteFile(this.iHandle, barray, barray.Length, out num, out overlapped);
        }

        [DllImport("kernel32.dll")]
        private static extern bool WriteFile(int hFile, byte[] lBuffer, int nNumberOfBytesToWrite, out int lpNumbersOfBytesWritten, out OVERLAPPED lpOverlapped);

        [StructLayout(LayoutKind.Sequential)]
        private struct OVERLAPPED
        {
            private int Internal;
            private int InternalHigh;
            private int Offset;
            private int OffSetHigh;
            private int hEvent;
        }
    }
构造参数就是直接在usb读取,其他不用说了哇
bing2057 2013-01-26
  • 打赏
  • 举报
回复
引用 8 楼 nowway99 的回复:
u口还是串口?
是U口!!!
imwyw 2013-01-26
  • 打赏
  • 举报
回复
u口还是串口?
bing2057 2013-01-25
  • 打赏
  • 举报
回复
各位大虾说得很抽象!!!能否给个DEMO
kensouterry1 2013-01-25
  • 打赏
  • 举报
回复
API啦,它自己的软件里面肯定有Win32 API的,否则怎么操作硬件呢?
youqi1984 2013-01-25
  • 打赏
  • 举报
回复
直接打印机端口写
  • 打赏
  • 举报
回复
有第三方打印控件,试试吧
bing2057 2013-01-25
  • 打赏
  • 举报
回复
不提供!!只提供了打印条码软件,但是现在我们自己的软件需要条码打印功能!!!用他们的软件做好指令,我们自己写程序发指令过去!!!
gxingmin 2013-01-25
  • 打赏
  • 举报
回复
条码打印机不提供接口给你吗?
bing2057 2013-01-25
  • 打赏
  • 举报
回复
急,希望大虾们帮助帮助!1
微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 微信小程序系统教程共有“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]——核心技术”、“微信小程序系统教程[阶段]客服消息+微信支付+九宝电商系统”。 “微信小程序系统教程[阶段]全套课程”包含: 1.微信小程序系统教程[阶段]_客服消息 2.微信小程序系统教程[阶段]_微信支付 3.微信小程序系统教程[阶段]_九宝电商系统 学习“微信小程序系统教程[阶段]”要求有微信小程序的基础。建议先学习“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]”,后在报名“微信小程序系统教程[阶段]”。 阶段讲解的客服消息,是针对小程序的。后台程序用接近底层的技术,没有使用三方技术。这样降低同学们学习成本。 微信支付,这部分课程很有难度,要求同学们认真听讲,有不会的技术问题可以请教老师。购买课程后请联系老师,提供单号,给你源程序。 九宝电商系统是一套十分适和学习、项目的课程。既可以系统的学习微信小程序相关知识,还可以修改后上线。 “微信小程序系统教程[中级阶段]——核心技术”重点讲解微信小程序事件、组件、API 微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 购买课程的同学,可赠送就九宝老师编写的《微信小程序开发宝典》。 购课请咨询qq2326321088

110,534

社区成员

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

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

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