如何判断硬键盘输入和软键盘输入,现在有很多远程控制软件,如何判断它们的输入是否为本地键盘输入?

解决方案 »

  1.   

    HOOK 一些 API 才能知道。總得來講,有些麻煩。
      

  2.   

    一种简单的方法就是用全局KEYBAOARD   HOOK, HHOOK hhook;
    LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);//SetWindowsHookEx最后一参数可以选择本线程还是全局
    hhook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)LowLevelKeyboardProc, hInstance, 0) ;LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
    {
        KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *) lParam; 
        if (pkbhs->flags & 0x10) //pkbhs->flags可确认是键盘还是模拟的
        {    }
        .....
    }UnhookWindowsHookEx(hhook) ;
      

  3.   

    if (pkbhs->flags & 0x10) //pkbhs->flags & 0x10可确认是键盘还是模拟的这句就可判断,你还要问的"给出详细的   思路+解决办法"是什么