C#中的keybs_event没有模仿逗号

时间:2011-04-08 14:59:41

标签: c# windows-mobile-6.1

我有一个在Windows Mobile 6.1设备上运行的C#程序。它需要将逗号分隔列表打印为键盘事件,以便用户可以将它们转储到当时打开的任何程序中。但是,keybd_event方法忽略了逗号,只是一个接一个地打印出数字。这是一个带有硬编码的数字的样本:

byte[] bBuf = Encoding.ASCII.GetBytes("22108,");

for (int i = 0; i < bBuf.Length; i++) 
{
 System.Diagnostics.Debug.WriteLine("buffer: " + bBuf[i]);
 keybd_event(bBuf[i], 0x00, keyFlag.KEYEVENTF_KEYDOWN, 0);
 System.Threading.Thread.Sleep(2);
 keybd_event(bBuf[i], 0x00, keyFlag.KEYEVENTF_KEYUP, 0);
 System.Threading.Thread.Sleep(2);
}

for (int i = 0; i < bBuf.Length; i++) { System.Diagnostics.Debug.WriteLine("buffer: " + bBuf[i]); keybd_event(bBuf[i], 0x00, keyFlag.KEYEVENTF_KEYDOWN, 0); System.Threading.Thread.Sleep(2); keybd_event(bBuf[i], 0x00, keyFlag.KEYEVENTF_KEYUP, 0); System.Threading.Thread.Sleep(2); }

这将打印出“22108”。

逗号字符有什么特别之处会导致它被忽略吗?如果有,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您必须为逗号传递0xBC - 请查看http://msdn.microsoft.com/en-us/library/dd375731(v=vs.85).aspx