我有一串值,想为每个字符在窗口中模拟按键事件。 我计划向窗口发送WM_KEYDOWN、WM_CHAR和WM_KEYUP事件(因为这是手动按键时发生的情况)。 这些消息需要在wParam中发送int,基于虚拟键代码表。 我可以循环遍历字符串并获取每个字符,但如何将该字符转换为对应于虚拟键代码的值? Convert.ToInt32()不起作用。
WM_KEYDOWN
或WM_KEYUP
消息--没有什么神奇的事情会发生。 - bobobobo看起来它将ASCII字符转换为十六进制。例如,'A'的十六进制是41。根据您的图表,A是0x41,这是正确的(0x表示十六进制)。
您可以使用输入模拟器库,该库提供了一个高级API来模拟按键操作并处理所有低级别的细节。
SendMessage
的签名并提供了一个示例导入。
HKL myKL = LoadKeyboardLayout("00000409", 0x00000001);
然后只需VkKeyScanEx(yourChar, myKL);
。 - jave.web