试下这个 keybd_event(vk_menu,0,0,0); // alt key Down keybd_event(VK_CONTROL,0,0,0);// control Key down keybd_event(VK_HOME,0,0,0); // Home Key down keybd_event(VK_HOME,0,KEYEVENTF_KEYUP,0); // Home key up keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0); // Control key up keybd_event(vk_menu,0,KEYEVENTF_KEYUP,0); // Alt Key up.
不过好像有的程序会去检测键盘状态,应该用按键的那个表来做吧.
不行.我現在使用
keybd_event(VK_CONTROL, Byte(MapVirtualKey(VK_CONTROL,0)), 0, 0);
keybd_event(65, Byte(MapVirtualKey(65,0)), 0, 0);
keybd_event(65, Byte(MapVirtualKey(65,0)), KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, Byte(MapVirtualKey(VK_CONTROL, 0)), KEYEVENTF_KEYUP, 0);
這段函數可以實現使用Ctrl+A(兩鍵)的功能
但是如果使用Shift+Ctrl+Home(三鍵)的功能卻不能使用這種方法,不知個位有何高見,請指點迷經。
你做一个程序,发到delphi的from的keydown看看,会不行的.
应为有的程序会检查键盘状态.
delphi的from的Kendown本身沒有Ctrl+A的功能當然不行實際上我想討論的是如何向程式中發送組合鍵(三鍵以上)的方法,再次感謝個位對本問題的關注。
keybd_event(vk_menu,0,0,0); // alt key Down
keybd_event(VK_CONTROL,0,0,0);// control Key down
keybd_event(VK_HOME,0,0,0); // Home Key down
keybd_event(VK_HOME,0,KEYEVENTF_KEYUP,0); // Home key up
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0); // Control key up
keybd_event(vk_menu,0,KEYEVENTF_KEYUP,0); // Alt Key up.