如何取得键盘上同时按下的两个或更多个的键?
我知道Ctrl、Shift、Alt加上其它键比较好取得,但是我现在要取得其它类型的组合键,如何取?
比如space+a+b+c or  a+s+d+f  or  Ctrl+Space+1 or Alt+Space+1+F3 等等

解决方案 »

  1.   

    要取组合键,你不如先用RegisterHotKey把你要其的组合键注册成热键,当指定的热键按下后,系统会发WM_HOTKEY消息到你的窗口。
      

  2.   

    因为我的程序可能需要用到键盘上所有常用的键,如果我注册了那么多的热键,那岂不是很乱???与其它程序可能会冲突的,我不可能在本窗体失去焦点事件中取消注册hotkey,获得焦点建立注册hotkey,那样做的话,效率很差……
      

  3.   

    在OnKeyDown中检查Shift.和State 两个参数就可以了。或者在任何时候都可以使用winAPI标准函数GetKeyState来得到当前所有按下去的键信息。
      

  4.   

    a+s+d+f :
    keybd_event(ord('a'),0,0,0);
    keybd_event(ord('s'),0,0,0);
    keybd_event(ord('a'),0,KEYEVENTF_KEYUP,0);
    keybd_event(ord('s'),0,KEYEVENTF_KEYUP,0);
      

  5.   

    同意 delphi_xizhousheng(西周生)