赞
踩
关于向Windows窗口发送Alt组合键的问题,这个真是经典问题啊,在网上找了一下,问的人N多,方法差不多,
但就是没有很好解决问题。
之前找到一个能正确发送的code:(Alt+A)
PostMessage(hWnd,WM_SYSKEYDOWN,VK_MENU,0);
PostMessage(hWnd,WM_SYSKEYDOWN,0x41,0);
Sleep(50);
PostMessage(hWnd,WM_SYSKEYUP,0x41,0);
PostMessage(hWnd,WM_SYSKEYUP,VK_MENU,0);
有人解释说,按下组合键的时候系统是发两条消息的
但是看到Win32 SDK,感觉上就发一次就可以了……
偶然间又看到最后一个参数的说明,有所发现!先看WM_SYSKEYDOWN的help
The WM_SYSKEYDOWN message is posted to the window with the keyboard focus when the user holds down the ALT key and then presses another key. It also occurs when no window currently has the keyboard focus; in this case, the WM_SYSKEYDOWN message is sent to the active window. The window that receives the message can distinguish between these two contexts by checking the context code in the lKeyData parameter.
WM_SYSKEYDOWN
nVirtKey = (int) wParam; // virtua
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。