刚学VC,孙鑫的VC深入讲解也快看完了。。当然肯定看一遍是不够的,现在有点小疑惑
 
我想写一个,判断,键盘输入的程序,但是捕获的来源是基于Windows桌面的,这个要怎么写?或者说怎么获得桌面的窗口句柄? =。= 还想再写一个键盘判断程序,按下某个键盘,就不停的发送鼠标点击信息,但是这个鼠标点击信息是发给某个游戏的,这个要怎么写?给个大概思路就好~~~(饿,希望你们能理解楼主的动机,作为一个刚毕业的学生,楼主只是为了更好的去学习VC,才想着给自己一个动力 = =~)

解决方案 »

  1.   

    1.SetWindowsHookEx
    2.SendInput / mouse_event
      

  2.   

    既然说到孙鑫的VC,判断,键盘输入的程序,翻到它的最后一章Hook编程,非常详细。
      

  3.   

    http://hi.baidu.com/atlight/blog/item/124f6acb77410818be09e6f1.html
      

  4.   

    桌面句柄:GetDesktopWindow()
    全局热键,
    模拟鼠标点击,
      

  5.   

    你应该捕获的是全局的键盘点击  我印象里是hook可以做 ,然后自己做鼠标点击的消息给你的游戏窗口
      

  6.   

    钩子哦
    看看消息HOOK的东西
      

  7.   

    SendMessage
    SendInput / mouse_event 模拟鼠标操作
      

  8.   

    SendMessage需要指定窗口句柄吧,但是我不知道游戏的窗口句柄是多少~~
      

  9.   

    可以遍历所有窗口 ,然后获取对应句柄   你可以用spy++这个工具看看这个窗口是不是有什么特殊的地方可以比较,例如窗口名字
      

  10.   

    ::SendMessage(HWND_BROADCAST,WM_LBUTTONDOWN,0,0);
    ::SendMessage(HWND_BROADCAST,WM_LBUTTONUP,0,0);
    失败啊
    把HWND_BROADCASE 改成程序本身句柄,也没办法实现鼠标点击
    求高手教教我   T.T
      

  11.   

    ::mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 1);
    ::mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 1);
    用这个就可以实现,而且不需要获得游戏的窗口句柄
    但是不理解SendMessage()为什么不能用。。谁说出来,分就给他了~