永发信息网

C# 做 WINCE 开发时,用 keybd_event 无法获取 - 符号

答案:2  悬赏:80  手机版
解决时间 2021-03-07 11:35
C# 做 WINCE 开发时,用 keybd_event 无法获取 - 符号,+号和乘号也不行

我是用做SYMBOL MC3000的开发,当扫描到条码时触发模拟键盘输入的事件,将扫描到的字符发送到文本框中,但是我发现接收到的数据是没错的,但在用keybd_event发送时,数字和字母、回车可以发送,符号无法发送,请问是什么原因呢。

如果是建议把扫读条码的接收事件直接写在窗体里的方法,我已经会用了,我想做到的是写个类将扫描程序封装起来,以后才用起来方便,这个就需要做模拟键盘输入。

模拟发送字符的代码附上。

模拟键盘输入的类
class KeyBoardSimulate
{
//事件
private const int KEYEVENTF_KEYUP = 0x02;
private const int KEYEVENTF_KEYDOWN = 0x00;

public static void SendKeys(char key)
{
keybd_event((byte)key, 0, KEYEVENTF_KEYDOWN, 0);
keybd_event((byte)key, 0, KEYEVENTF_KEYUP, 0);

}

[DllImport("coredll", SetLastError = true)]

private static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
}

条码扫读成功后调用发送读到的字符的方法
private static void HandleData(Symbol.Barcode.ReaderData TheReaderData)
{

string msg = TheReaderData.Text;
for (int i = 0; i < msg.Length;i++ )
{
KeyBoardSimulate.SendKeys(msg[i]);
}
KeyBoardSimulate.SendKeys('\r');
}

请高手不吝赐教

说错了,应该是无法发送
最佳答案
keybd_event((byte)key, 0, KEYEVENTF_KEYDOWN, 0); 第一个参数不强转,放个虚拟码试试
全部回答
你说呢...
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
小红买了3kg苹果和5kg香蕉共花24.5元,小明买
房产证名字是爷爷的.但是想直接过户到我名下(
海尔电商专供滚筒洗衣机会是翻新的吗?
某市儿童公园将其一房屋租给个体户王某开鲜花
纹身部落地址在什么地方,想过去办事
人性本善的辩论证据。
体育老师要给运动员买运动服,买20套还剩200
用一种溶液检验氯离子、碳酸根离子、氢氧根离
醉驾会扣车吗
求安装poweramp、rockbox最简单直接的方法。
香草网球场在什么地方啊,我要过去处理事情
网吧里的游戏是自动更新的吗?
轩辕传奇永久白金贵族时装怎么弄
发光二极管是导体还是绝缘体还是.....
805元AN冠号是?
推荐资讯
有关对阿尔茨海默病的描述,错误的是A.有记忆
兔毛皮草掉毛怎么处理
【log5(3^x+4^x)=log4(5^x+4^x)要详细过程,急
永兴公寓地址在哪,我要去那里办事
【三个车念什么】三个車读什么字?
手机充电的地方发烫,然后就充不了电是什么原
16字的伤感句子。没有任何符号的16字一句
玉米剥成粒后怎样晒比较方便
【北京首套房首付比例】...将购买首套住房的
宝平路加气站我想知道这个在什么地方
葫芦僧断葫芦案是什么典故
我想喝女孩子月经怎么办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?