【发布时间】:2011-02-09 12:06:34
【问题描述】:
我使用 PostMessage 在后台程序中模拟击键。除了需要在物理键盘上移动的字符外,它工作正常。如何模拟班次? "
我使用的代码大致是:
VK vk = VkKeyScanEx (c, GetKeyboardLayout (0));
AttachThreadInput (_attachedThredId, _attachedProcessId, true);
PostMessage (_window, WM_KEYDOWN, vk.key, 0x1);
PostMessage (_window, WM_KEYUP, vk.key, 0xC0010001);
AttachThreadInput (_attachedThredId, _attachedProcessId, false);
我应该如何处理 VK 的扩展部分?
编辑
我正在尝试创建一个屏幕键盘。屏幕键盘上的每个按钮都模拟一系列击键。接收器是一个旧程序,它根据执行的键盘顺序执行不同的任务。 键盘顺序如下
- {ESC}NN{ESC}NN
- {ESC}NN
- ½NN
- §NN
其中 {ESC} 模拟按下 Esc 键,NN 是十六进制值,§/½ 让程序监听。
通常我们有特殊的物理键盘来控制程序,但它们很贵。所以在我们并不总是有物理键盘的测试环境中,我们必须手动输入这些代码
【问题讨论】:
-
不要使用 PostMessage!它不起作用。使用 SendInput。
-
我现在已经描述了更多我尝试做的事情。希望你能帮助我