怎么用sendmessage 发送alt键 +D 好用立即结贴 谢谢了
怎么用sendmessage 发送alt键 +D 好用立即结贴 谢谢了 问题点数:100、回复次数:3Top
1 楼jinjazz(近身剪)回复于 2005-04-17 23:07:56 得分 20
用keybd_eventTop
2 楼aloking(黑鲸)回复于 2005-04-17 23:26:16 得分 20
SendMessage(handle,WM_keyDown,VK_ALT+44,0);Top
3 楼aiirii(ari-http://spaces.msn.com/members/aiirii/)回复于 2005-04-18 00:36:29 得分 60
下面的代码是模拟Ctrl+C和Ctrl+V:
//Ctrl+C:
keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);
keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), 0, 0);
keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0)
//Ctrl+V:
keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);
keybd_event(Ord('V'), MapVirtualKey(Ord('V'), 0), 0, 0);
keybd_event(Ord('V'), MapVirtualKey(Ord('V'), 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0)
**************************
按下一个键最好用SendMessage,用sndkey32.pas无疑会增加程序尺寸。
组合键(超过两个以上)用sndkey32.pas就显出优势来了。
另一种解决方法,下例模拟按下Alt+Down,可参见Delphi SDK的帮助:
keybd_event( VK_MENU, MapVirtualKey( VK_MENU, 0 ), 0 , 0 ); // Alt down
keybd_event( VK_DOWN, MapVirtualKey( VK_DOWN, 0 ), 0 , 0 ); // down arrow key down
keybd_event( VK_DOWN, MapVirtualKey( VK_DOWN, 0 ), KEYEVENTF_KEYUP , 0 ); // down arrow key up
keybd_event( VK_MENU, MapVirtualKey( VK_MENU, 0 ), KEYEVENTF_KEYUP , 0 ); // Alt key upTop




