回 帖 发 新 帖 刷新版面

主题:如何用sendmessage函数模拟2个键同时按下?如(alt + a)

同上

回复列表 (共2个回复)

沙发

当有多个键(N个)同时按下时,窗口过程实际上收到多条(N条)按键消息WM_KEYDOWN或者WM_SYSKEYDOWN,所以要模拟多个键同时按下只要按按键的次序依次发送多条WM_KEYDOWN或者WM_SYSKEYDOWN消息就行。(当有alt键按下时将产生WM_SYSKEYDOWN)

alt+a可以这样发送:
SendMessage(hwnd,WM_SYSKEYDOWN,VK_MENU,0);
SendMessage(hwnd,WM_SYSKEYDOWN,VK_A,0);
shift+a可以这样发送:
SendMessage(hwnd,WM_KEYDOWN,VK_SHIFT,0);
SendMessage(hwnd,WM_KEYDOWN,VK_A,0);
ctrl+a可以这样发送:
SendMessage(hwnd,WM_KEYDOWN,VK_CONTROL,0);
SendMessage(hwnd,WM_KEYDOWN,VK_A,0);
或者
SendMessage(hwnd,WM_CHAR,1,0);





板凳

尝试使用
keydb_event 函数

我来回复

您尚未登录,请登录后再回复。点此登录或注册