SendMessage模拟按键操作

Windows 窗口的消息机制里,SendMessage算是老牌好用的 API 了,尤其在 VB 里,配合键盘虚拟码,可以轻松搞定按键模拟的事。你只要找对窗口句柄,发个WM_KEYDOWNWM_KEYUP就行,响应也快,代码也简单。

模拟单键还好说,比如发送个Asc("A")就能搞定“A”键。组合键就稍微复杂点,要手动控制顺序,比如 Ctrl+C 就得分四步来,先按 Ctrl,再按 C,放开 C,再放开 Ctrl——顺序不能错。

下面这段 VB 代码挺直观:

SendMessage hWnd, WM_KEYDOWN, VK_CONTROL, 0
SendMessage hWnd, WM_KEYDOWN, Asc("C"), 0
SendMessage hWnd, WM_KEYUP, Asc("C"), 0
SendMessage hWnd, WM_KEYUP, VK_CONTROL, 0

如果你是做自动化或者测试的,这种方式实用。虽然微软后来也出了更强的 SendInput,但对老 VB 项目来说,SendMessage就已经够用了。

建议你配合查一下虚拟键码表,省得自己猜键值。还有,别忘了窗口句柄要找对,用 FindWindow 搭配窗口标题就行。

对了,如果你想深入 VB 模拟按键的玩法,可以看看这个蛮全的源码:模拟按键通杀所有游戏(VB 源码),里面组合键、循环按键都有例子。

嗯,,这套方式适合想在 VB 里实现快捷自动操作的你,挺方便的。想偷点懒写脚本?不妨试试。

zip 文件大小:7.27KB