我想通过快键启动以下程序块,模拟鼠标左键的一次单击,在系统和其他程序我能想到的地方实验都没问题(包括连续按两下快键模拟左键双击),可是在QQ游戏的连连看里的游戏去却出现问题(我没兴趣玩儿连连看,纯属研究),似乎只接受了一次鼠标按下,却没有接受放开的动作,(就连右侧的开始按钮,聊天发送,帮助什么的都支持模拟,唯游戏区域不能),望有兴趣的大侠帮忙研究一下。RegisterHotKey ( m_hWnd  , 1001 , 0 , 'Z' ) ;LRESULT CO2JamView::OnHotKey ( WPARAM wParam , LPARAM lParam )
{
if ( wParam == 1001 )
{
INPUT input[2] ;
input[0].type = input[1].type = INPUT_MOUSE ;
input[0].mi .dwFlags = MOUSEEVENTF_LEFTDOWN ;
input[1].mi .dwFlags = MOUSEEVENTF_LEFTUP ;
input[0].mi .time = input[1].mi .time = GetTickCount();
SendInput (2, input, sizeof(INPUT)); return FALSE ;
         }
}

解决方案 »

  1.   

    你用SPY++看看他的消息,postMessage和直接点的消息居然不一样,好厉害,我看过。
      

  2.   

    spy++没用过,刚才研究了一下,得到这样的结果,不知道是不是这些:<00190> 01230774 S WM_SETCURSOR hwnd:01230774 nHittest:HTCLIENT wMouseMsg:WM_LBUTTONDOWN
    <00191> 01230774 R WM_SETCURSOR fHaltProcessing:True
    <00192> 01230774 P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:309 yPos:550
    <00193> 01230774 S WM_SETCURSOR hwnd:01230074 nHittest:HTCLIENT wMoustMsg:WM_LBUTTONUP
    <00194> 01230774 R WM_SETCURSOR fHaltProcessing:True
    <00195> 01230774 P WM_LBUTTONUP fwKeys:0000 xPos:309 yPos:550可是我用鼠标左键点一下,和按一下自己编的模拟左键都是一样的结果啊,除了行号吧。
    为什么会有不同的结果呢?
      

  3.   

    请看我写的QQ外挂文章,QQ的确对模拟鼠标做了处理.http://adong2008.512j.com
    http://adong2008.512j.com/docview.asp?DocID=1http://blog.csdn.net/dongfa
      

  4.   

    厉害,可哪儿找那反汇编的程序用啊,网上的IDApro不能用,windbg是什么东西啊,系统带的吗,怎么没找到下载的
      

  5.   

    WinDBG是微软的调试工具.
    需要安装的.
    也是命令式反汇编软件,类似soft-ice.下载
    http://www.microsoft.com/whdc/devtools/debugging/default.mspx你还可以安装符号文件,虽然使用复杂,但功能很强大的.