下你所需,载你所想!
汇集开发技术源码资料

键盘消息组合键非常好使包括CTRL或ALT键

:3.356KB :1 :2019-11-15 21:23:10

部分简介

' keybd_event (#VK_CONTROL, 进制_十六到十 (“1D”), #KEYEVENTF_KEYUP, 0)
' keybd_event VK_SHIFT, &H2A, 0, 0 ' 模拟按下SHIFT键,&H2A是VK_SHIFT的扫描码
' PostMessage hWndMsg, WM_KEYDOWN, VK_A, &H001E0001 ' 模拟按下 A 键,SHIFT+A产生一个大写A字符
' PostMessage hWndMsg, WM_KEYUP, VK_A, &HC01E0001 ' 模拟抬起 A 键
' keybd_event VK_SHIFT, &H2A, KEYEVENTF_KEYUP, 0 ' 模拟抬起 SHIFT 键
' 以上VK_SHIFT(扫描码2A)换成VK_CONTROL(扫描码1D)就可以实现Ctrl组合键,VK_A(扫描码1E)也可以换成任意功能键,如VK_F4(扫描码3E)
' 对于Alt修饰键比较特别,它属于系统按键,要用 WM_SYSKEYDOWN/WM_SYSKEYUP 消息,如下:
' ALT键码:VK_MENU
' PostMessage hWndMsg, WM_SYSKEYDOWN, VK_F4, &H003E0001 Or &H20000000 ' 模拟按下 Alt+F4
' PostMessage hWndMsg, WM_SYSKEYUP, VK_F4, &HC03E0001 Or &H20000000? ?'??模拟抬起 Alt+F4
' &H20000000 为 context code 位,置 1 表示 Alt 键被按下
' 关于向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
' postmessage(handle,wm_keydown,vk_down,$20000000)
' Ctrl : $10000000;
' Shift: $08000000;
' Alt:20000000
' #VK_DOWN
' #VK_UP

键盘消息组合键非常好使包括CTRL或ALT键

热门推荐

相关文章