我用一个程序模拟鼠标和键盘的输入,
有没有可能识别是程序发的消息还是真实鼠标和键盘的输入,
在我的鼠标和键盘钩子中:
我怎么能判断现在捕获到的程序的输入是我模拟的?还是真实的鼠标和键盘的输入呢??多谢!!

解决方案 »

  1.   

    to Dynamic(1.0) 
    low level mouse hook是什么意思?那应该还有high level mouse hook。
    他们有什么区别?
      

  2.   

    WH_MOUSE_LL 
    Windows NT: Installs a hook procedure that monitors low-level mouse input events. For more information, see the LowLevelMouseProc hook procedure. 
    WH_KEYBOARD_LL 
    Windows NT: Installs a hook procedure that monitors low-level keyboard input events. For more information, see the LowLevelKeyboardProc hook procedure. 你指的是这个吗?它是不是只能在NT下运行?
      

  3.   

    Windows NT: Requires version 4.0 SP3 or later.
      Windows: Unsupported.
      Windows CE: Unsupported.
      Header: Declared in winuser.h.Windows不支持他们。
    换一个吧!!
      

  4.   

    模拟鼠标和键盘的输入在DirectInput下你就会发觉:真不一样!
      

  5.   

    用SendMessage发送WM_KEYUP消息是不是也能模拟键盘事件??
    那它能实现组合键吗?就是说它什么键都能模仿吗?
      

  6.   

    用SendMessage发送WM_KEYUP消息是不是也能模拟键盘事件??
    那它能实现组合键吗?就是说它什么键都能模仿吗?
      

  7.   

    用mouse_event(MOUSEEVENTF_LEFTDOWN,cx,cy,0,YourID);往当前线程消息队列发送。
    然后在WM_LBUTTONDOWN 中用Id = GetMessageExtraInfo();
    if(Id == YourID) 说明这个鼠标消息是你发的。
      

  8.   

    TO Anikan
    我一敲快就会有一些键的值无法正常显示,好像被系统“吃掉”了。
    这是为什么呢?我安装了一个键盘的线程钩子(Dll),每次捕获键盘的输入并模拟它的这次输入,
    即你输入一个“A”,我再模拟输入一个“A”,等于输入了两个“A”。每次都是用PostMessage给程序发送消息来模拟键盘的输入,
    用keybd_event模拟键盘输入:
       keybd_event( nKeyX, MapVirtualKey(nKeyX,0), 0, 0);
       keybd_event( nKeyX, MapVirtualKey(nKeyX,0), KEYEVENTF_KEYUP, MyMsgID);
    是哪里的问题呢??
      

  9.   

    to  Anikan(皮皮鱼)
    为什么我的这个附加的消息没有接收到呢?
    我在DLL中截获键盘的消息,并获得额外信息:
    int ID = GetMessageExtraInfo();
    但是得到的ID是一个空。为什么会这样呢?
      

  10.   

    搞定了,还是用全局变量实现的。
    我不确定是否用额外信息能在DLL与调用程序间传递。所以只能用这种笨办法了!!
    ————新问题————新问题————新问题————新问题————
    如何用keybd_event模拟组合键呢??如Alt+a,选取全部,
    我看到SendMessage要实现组合键就需要为它传递5条信息,不知道keybd_event是不是也这样麻烦???
      

  11.   

    还有就是keybd_event在本机模拟键盘时速度还可以,但是如果是远程模拟就要求速度,稍微快一些就会丢失信息。
      

  12.   

    如鍵盤消息在你發送模擬消息中的lParam32位變量中(25–28)沒有使用,可以在這四個位中,加入你的特殊標識啊.
      

  13.   

    to ShiGang(Sucess)
    谢谢!我已经可以判断是否模拟按键。我想知道:
    如何用keybd_event模拟组合键呢??如Alt+a,选取全部,
    我看到SendMessage要实现组合键就需要为它传递5条信息,不知道keybd_event是不是也这样麻烦???