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

bing2057 2013-01-25 01:39:14
我现在开发一个winforms程序,需要条码打印功能,程序是这样的,我先做好条码指令文本,然后通过c#程序发送指令集去条码打印机,条码打印机接到指令直接打印,我用的条码打印机是Intermec PB32
...全文
1224 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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

111,092

社区成员

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

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

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