c#已提供了串口通信组件SerialPort,但是C#并没有提供直接的并口通信组件,只好通过调用API来与并口通信

代码

1 using System;
2  using System.Runtime.InteropServices;
3  namespace LptPrint_test
4 {
5 /// <summary>
6 /// LPTControl 的摘要说明。
7 /// </summary>
8   public class LPTControl
9 {
10 private string LptStr = "lpt1";
11 public LPTControl(string l_LPT_Str)
12 {
13 //
14 // TODO: 在此处添加构造函数逻辑
15 //
16 LptStr = l_LPT_Str;
17 }
18 [StructLayout(LayoutKind.Sequential)]
19 private struct OVERLAPPED
20 {
21 int Internal;
22 int InternalHigh;
23 int Offset;
24 int OffSetHigh;
25 int hEvent;
26 }
27 [DllImport("kernel32.dll")]
28 private static extern int CreateFile(string lpFileName, uint dwDesiredAccess, int dwShareMode, int lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, int hTemplateFile);
29 [DllImport("kernel32.dll")]
30 private static extern bool WriteFile(int hFile, byte[] lpBuffer, int nNumberOfBytesToWrite, ref int lpNumberOfBytesWritten, ref OVERLAPPED lpOverlapped);
31 [DllImport("kernel32.dll")]
32 private static extern bool CloseHandle(int hObject);
33 private int iHandle;
34 public bool Open()
35 {
36 iHandle = CreateFile(LptStr, 0x40000000, 0, 0, 3, 0, 0);
37 if (iHandle != - 1)
38 {
39 return true;
40 }
41 else
42 {
43 return false;
44 }
45 }
46 public bool Write(String Mystring)
47 {
48 if (iHandle != - 1)
49 {
50 OVERLAPPED x = new OVERLAPPED();
51 int i = 0;
52 byte[] mybyte = System.Text.Encoding.Default.GetBytes(Mystring);
53 bool b = WriteFile(iHandle, mybyte, mybyte.Length, ref i, ref x);
54 return b;
55 }
56 else
57 {
58 throw new Exception("不能连接到打印机!");
59 }
60 }
61 public bool Write(byte[] mybyte)
62 {
63 if (iHandle != - 1)
64 {
65 OVERLAPPED x = new OVERLAPPED();
66 int i = 0;
67 WriteFile(iHandle, mybyte, mybyte.Length, ref i, ref x);
68 return true;
69 }
70 else
71 {
72 throw new Exception("不能连接到打印机!");
73 }
74 }
75 public bool Close()
76 {
77 return CloseHandle(iHandle);
78 }
79 }
80 }
81
82

转载于:https://www.cnblogs.com/kk1230/archive/2009/11/25/1610728.html

C# 操作并口类,并口通信相关推荐

  1. Qt操作Office的一个实例--口算题生成器制作。

    文章目录 Qt操作Office的一个实例--口算题生成器制作. 1.关联QAxObject 2.操作Word文档: 3.设计界面 4.关键代码 效果: Qt操作Office的一个实例–口算题生成器制作 ...

  2. RS-232串行口连接线 com口连接线 并口链接线 双绞线 交叉线 直连线

    通过串口并口共享资源在两台计算机之间进行通信,最好的方法当然是建立局域网.如果没有建立网络, 又想进行联机通信,在距离不太远(比如不超过20米)的情况下,可考虑通过计算机的并 行口或RS-232串行口 ...

  3. RS-232 RS-485 TTL电平标准 以及串口、COM口、UART口、USB转TTL、USB转串口

     串口 即串行通信接口,与之相对应的另一种接口叫并口,并行接口.两者的区别是,传输一个字节(8个位)的数据时,串口是将8个位排好队,逐个地在1条连接线上传输,而并口则将8个位一字排开,分别在8条连接线 ...

  4. 计算机网络:access口,trunk口与泛洪

    在学习计算机网络有关vlan方面的知识时首先接触到了access口,trunk口以及泛洪的概念,这篇博客主要介绍一下我自己的简单理解. 客户端与交换机接口主要学习了两类,一类是access口,一类是t ...

  5. 在C#中使用SerialPort类实现串口通信 遇到多线程问题

    在C#中使用SerialPort类实现串口通信 遇到多线程问题 在C#中使用SerialPort类实现串口通信. 2009年11月01日 星期日 10:03 在.NET work 2.0中提供了Ser ...

  6. thinkserver rd650管理口地址_路由器WAN口和LAN口有什么区别【区别介绍】

    现在一般家庭上网采用ADSL电话线上网的较多,而且家里一般都有好几台电脑,那么如何使几台电脑同时上网呢?这就要用到宽带路由器了,一般情况下宽带路由器上面有好几个网线插口,这些网线插口上有的标有WAN, ...

  7. 路由器上面的WAN口和LAN口是什么意思

    现在一般家庭上网采用ADSL电话线上网的较多,而且家里一般都有好几台电脑,那么如何使几台电脑同时上网呢?这就要用到宽带路由器了,一般情况下宽带路由器上面有好几个网线插口,这些网线插口上有的标有WAN, ...

  8. OpenWRT 网络配置WAN口和LAN口

    转载于:https://blog.csdn.net/u012041204/article/details/53674946 一.基本概念 LAN:Local Area Network 的英文简称,即局 ...

  9. 路由器lan口和wan口详解

    这里讲下一下wan口和lan口的区别,以及他们之间的工作原理. 1.基础知识: WAN是英文Wide Area Network的首字母所写,即代表广域网: LAN则是Local Area Networ ...

最新文章

  1. PyQt5 技术篇-QTableWidget表格组件的行选择与列选择实例演示,表格组件的双击事件捕获,获取表格选中单元格的值
  2. OneAPM大讲堂 | 提高JavaScript性能的30个技巧
  3. python 下的数据结构与算法---6:6大排序算法
  4. Problem F: 结构体--学生信息排序
  5. JAVA程序员面试总结,高手整整理加强版
  6. 装系统可能会出现的问题--无法装在该磁盘,因为格式的原因
  7. C#线程系列讲座(5):同步技术之Monitor
  8. Redis 安装配置(一)
  9. freebsd下fcgi程序例子
  10. Linux下修改键盘映射
  11. 开根号的笔算算法图解_用笔算开根号
  12. android 动态表情包,动态表情包下载免费
  13. 原创【歌词类】绘流年
  14. 说一说程序员如何保持平常心
  15. 计算机制作通知的具体步骤,关于举办2018年镇江市中小学电脑制作活动的通知...
  16. 10.原码、反码、补码
  17. 用智能ABC关闭程序
  18. [HCTF 2018] WarmUp
  19. Java Web实战开发 | Web项目的创建与运行
  20. 抽奖随机滚动_仅需2分钟,使用excel制作一个抽奖小工具,再也不用为抽奖发愁了...

热门文章

  1. 记一次糟心的内网靶场实战
  2. 《深入理解NGINX 模块开发与架构解析》之摘抄学习
  3. 《网易编程题》买苹果
  4. 动态规划算法入门---java版
  5. C#求空间两点之间的距离
  6. 【Nutch2.2.1源代码分析之4】Nutch加载配置文件的方法
  7. JSON学习笔记(四)- JSON.parse()
  8. MySQL死锁案例分:先delete,再insert,导致死锁
  9. linux下怎么退出telnet
  10. highchart 柱状图,列宽自适应(x轴是时间的特殊情况)