我有一个在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”。
逗号字符有什么特别之处会导致它被忽略吗?如果有,我该如何解决这个问题?
答案 0 :(得分:0)
您必须为逗号传递0xBC - 请查看http://msdn.microsoft.com/en-us/library/dd375731(v=vs.85).aspx