如何实现双击键盘上按钮的灵敏度,比如双击ctrl唤起我的应用程序,我想设置按键的双击时间间隔。。

解决方案 »

  1.   

    修改注册表
    HKEY_CURRENT_USER\Control Panel\Keyboard\KeyboardSpeed
                                             KeyboardDelay或者使用SystemParametersinfo()
    SPI_SETKEYBOARDDELAY:设置键盘重复延迟。参数ulParam必须指定为0,1,2或3。其中0表示设置为最短延迟(大约 250ms)3,表示最大延迟(大约 1 秒)
    SPI_SETKEYBOARDSPEED:设置键盘重击键速度。参数ulParam必须指定一个从0到31的值,其中0表示设置成最快速度(大约30次/秒),31表示设置为最低速度(大约2.5次/秒)
      

  2.   

    最近也想在WinCE上调节一下按钮的灵敏度,但是SystemParametersinfo函数在WinCE下不支持SPI_SETKEYBOARDDELAY和SPI_SETKEYBOARDSPEED.
    不知道用PreTranslateMessage函数能不能拦截到连续按下的事件?
      

  3.   

    PreTranslateMessage处理按键弹起或按下,用GetTickCount()获取弹起的当前时间。2次弹起时间差如果小于你设定的间隔时间就认为是双击了,再调用自己的处理函数
      

  4.   

    如果焦点不在自己的应用程序就需要使用系统热键:
    相关函数/消息:
    BOOL RegisterHotKey(HWND hWnd, int id, UINT fsModifiers, UINT vk);ON_WM_HOTKEY()OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2)UnregisterHotKey(m_hWnd,HOT_KEY);