C#向并口设备发送指令以获取并口设备的状态
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms; namespace ParallelPort
{
public partial class Form1 : Form
{
const uint GENERIC_READ = 0x80000000;
const uint GENERIC_WRITE = 0x40000000;
const uint FILE_ATTRIBUTE_NORMAL = 0x80; #region win32 API
[DllImport("kernel32.dll ")]
private static extern int CreateFile(
string lpFileName,
uint dwDesiredAccess,
int dwShareMode,
int lpSecurityAttributes,
int dwCreationDisposition,
uint dwFlagsAndAttributes,
int hTemplateFile
); [DllImport("kernel32.dll ")]
private static extern bool WriteFile(
int hFile,
byte[] lpBuffer,
int nNumberOfBytesToWrite,
ref int lpNumberOfBytesWritten,
int lpOverlapped
); [DllImport("kernel32.dll ")]
private static extern bool DefineDosDevice(
int dwFlags,
string lpDeviceName,
string lpTargetPath); [DllImport("kernel32.dll ")]
private static extern bool CloseHandle(
int hObject
);
[DllImport("kernel32.dll ")]
private static extern bool ReadFile(
int hFile,
byte[] lpBuffer,
int nNumberOfBytesToRead,
ref int lpNumberOfBytesRead,
int lpOverlapped
);
#endregion public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
int iHandle = -1;
try
{
int i = 0;
//创建实例
DefineDosDevice(0x00000001, "LptPortName",@"\Device\Parallel0");
iHandle = CreateFile(@"\\.\LptPortName",GENERIC_READ | GENERIC_WRITE, 0, 0, 3, FILE_ATTRIBUTE_NORMAL, 0);
if (iHandle !=-1)
{
byte[] mybyte = new byte[3]{ 0x12, 0x14, 0x14 };//要发送的命令(16进制)
WriteFile(iHandle, mybyte, mybyte.Length, ref i, 0);
byte[] mybyte1 = new byte[3];
string content = String.Empty;
int j = 0;
ReadFile(iHandle, mybyte1, 3, ref j, 0);
if (mybyte1 != null)
{
foreach(var tempByte in mybyte1)
{
content += tempByte.ToString();
}
}
MessageBox.Show(content);//获取的状态值
}
else
{
MessageBox.Show("创建文件失败!");
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (iHandle > 0)
{
CloseHandle(iHandle);
}
}
}
}
}
C#向并口设备发送指令以获取并口设备的状态的更多相关文章
- 转:向IOS设备发送推送通知
背景 SMS 和 MMS 消息是由无线运营商通过设备的电话号码向特定设备提供的.实现 SMS/MMS 的服务器端应用程序的开发人员必须费大量精力才能与现有的封闭电信基础架构进行交互(其中包括获取电话号 ...
- Xshell同时向多个会话发送指令的方法
我们平时使用XSHELL.SecureCRT.putty等ssh连接工具连接到远程主机,每次输入指令都是在单一会话窗口,如果有很多台会话,需要同时输入同样的指令,我们就不用一一输入,浪费时间和精力.可 ...
- 【Android Developers Training】 41. 向另一台设备发送文件
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- iOS与硬件通讯(socket,data拼接,发送指令,解析指令)
最近项目中用到了iPad驱动硬件来工作,也就是智能硬件的实现.下面简单说下原理,详细说下socket,wifi通信,数据处理接收,发送,以及数据解析代码. 首先,来说下通信.因为硬件部件比较多,我们采 ...
- 【Android开发—智能家居系列】(四):UDP通信发送指令
思路回顾 [1]手机连接WIFI模块 [2]UDP通信对WIFI模块发送指令,以和WIFI模块保持连接状态 [3]UDP通信对WIFI模块发送指令,让其搜索可用的无线网,返回WIFI列表 [4]发送指 ...
- 2019-11-29-WPF-测试触摸设备发送触摸按下和抬起不成对
原文:2019-11-29-WPF-测试触摸设备发送触摸按下和抬起不成对 title author date CreateTime categories WPF 测试触摸设备发送触摸按下和抬起不成对 ...
- 2019-7-15-WPF-测试触摸设备发送触摸按下和抬起不成对
title author date CreateTime categories WPF 测试触摸设备发送触摸按下和抬起不成对 lindexi 2019-7-15 9:3:51 +0800 2019-0 ...
- Win7使用USB口连接H3C交换机的Console口
使用Console线的一端连接交换机的Console口,另一端连接电脑的USB口. 使用驱动精灵安装USB转串口驱动,我电脑上面提示安装的是: Prolific PL2303 USB转串口驱动1.16 ...
- 乾坤合一~Linux设备驱动之USB主机和设备驱动
如果不能陪你到最后 是否后悔当初我们牵手 如果当初没能遇见你 现在的我 在哪里逗留 所有的爱都是冒险 那就心甘情愿 等待我们一生中 所有悬念 我一往情深的恋人 她是我的爱人 她给我的爱就像是 带着露水 ...
随机推荐
- linux环境设置:使ftp不输密码
# cd ~; # vi .netrc; Add beloew words, 可以追加多个账户: machine yourservername login yourname password your ...
- openstack ovs-gre 网速慢解决方案
Hint: if you want to check if this answer will solve your issue, execute ifconfig eth0 mtu 1400 on t ...
- ul不加宽高
ul可以不加宽高,但是不能用margin(上下左右), 可以用margin(左右),否则里面的内容如果是要左右浮动的话,就会掉下来
- HTML - HTML Commonly Used Character Entities
HTML Entities Some characters are reserved in HTML. It is not possible to use the less than (<) o ...
- SharePoint 2013 "通知我"简单的功能
简单的功能 "通知我"内部列表或文档库中的主要项目.加入/删除/修改等操作,用户的E- mail通知设定功能:设置列表或文档库通知的能力,有可能设置通知为一个单一的项目.这是Sha ...
- 50个Android开发技巧(11 为文字加入特效)
问题:怎样构建一个模拟LED数字时钟的页面?效果例如以下图所看到的: (原文地址:http://blog.csdn.net/vector_yi/article/details/24460227) 分析 ...
- EasyUI - Menu 菜单
效果: html代码: <div id="mm" class="easyui-menu"> <div id =">New< ...
- iOS无处不在详解iOS集成第三方登录(SSO授权登录无需密码)
链接地址:http://www.it165.net/pro/html/201408/18884.html 1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社 ...
- Oracle 创建索引的基本规则总结
1. 选择索引字段的原则: 在WHERE子句中最频繁使用的字段 联接语句中的联接字段 选择高选择性的字段(如果很少的字段拥有相同值,即有很多独特值,则选择性很好) Oracle在UNIQUE和主键字 ...
- HTML5 input placeholder 颜色 改动
David Murdoch:Chrome支持input=[type=text]占位文本属性,但下列CSS样式却不起作用: CSS input[placeholder], [placeholder], ...