这篇文章主要介绍C#中Lpt端口打印类怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
C#LPT端口打印类的操作是什么呢?首先让我们看看什么是LPT端口(打印机专用)?LPT端口是一种增强了的双向并行传输接口,在USB接口出现以前是扫描仪,打印机最常用的接口。***传输速度为1.5Mbps,设备容易安装及使用,但是速度比较慢,下面是C#LPT端口打印类的操作具体实例:
using System; using System.Runtime.InteropServices; using System.IO; namespace printBarcode { /// <summary> /// LPTControl 的摘要说明,C#LPT端口打印类的操作 /// </summary> public class LPTControl { public LPTControl() {} [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 nNumberOfBytesToWrite, ref int lpNumberOfBytesWritten, ref OVERLAPPED lpOverlapped ); [DllImport("kernel32.dll")] private static extern bool CloseHandle( int hObject ); //C#LPT端口打印类的操作 private int iHandle; 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=0; OVERLAPPED x=new OVERLAPPED(); byte[]mybyte= System.Text.Encoding.Default.GetBytes(Mystring); return WriteFile( iHandle,mybyte,mybyte.Length,ref i,ref x); } else { throw new Exception("端口未打开!"); } } public bool Close() { return CloseHandle(iHandle); } }//C#LPT端口打印类的操作 }
以上是“C#中Lpt端口打印类怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!