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端口打印类的操作的具体步骤就向你介绍到这里,希望对你了解C#LPT端口打印类有所帮助。
【编辑推荐】