我想控制一个别人的程序,当然我没有源代码,只有可执行程序。我想让自己的程序模仿鼠标点击操作,点击别人程序的一个按钮。不知道这能否可行??

解决方案 »

  1.   

    使用SPY++工具和 SendMessage , PostMessage 函数
      

  2.   

    用Spy找到按钮的窗口句柄
    然后SendMessage就行啦
      

  3.   

    用FindWindowEx找到那个按钮窗口的句柄,然后向他发送一个WM_LBUTTONDOWN和一个WM_LBUTTONUP消息。
      

  4.   

    HWND hwndParent= ::FindWindow(NULL,"xxx");
    HWND hCombo=::FindWindowEx(hwndParent,0,"ComboBox",NULL);//找到combobox
    HWND hEdit=::FindWindowEx(hwndParent,0,"Edit",NULL); //找到Edit
    ::SendMessage(hCombo,CB_RESETCONTENT,0,0);//清除列表框中的内容
    char *user=m_name.GetBuffer(m_name.GetLength());
    ::SendMessage(hCombo,CB_ADDSTRING,0,(LPARAM)user);
    ::SendMessage(hCombo,CB_SETCURSEL,0,(LPARAM)user);
    char* szEdit=m_password.GetBuffer(m_password.GetLength());
    ::SendMessage(hEdit,WM_SETTEXT,0,(LPARAM)szEdit);
    ::SendMessage(hwndParent,WM_COMMAND,IDOK,0);
      

  5.   

    控制别人的程序要看控制在什么级别,如果你是简单模拟一个鼠标,太简单,发几个消息就可以了,如果要截获别的应用程序的消息、函数调用,甚至还要动态修改别的应用程序,那么你要对windows hook、hookapi、inject dll、pe import等有一定的了解,我的主页上有很多联众补丁(外挂),都是A控制B方式的应用程序,有兴趣的人可以看看。 http://www.oldworm.com
      

  6.   

    现在我的想法是:  既然我是想模拟点击操作,那么就不需要什么界面了,可用VC我可不知道怎么做一个不需要界面的程序。是不是就是 win32 Application ???
      

  7.   

    写一个窗口过程的dll
    然后把他注射到你想控制进程中
      

  8.   

    把你的MainFrame窗口HIDE 起来就可以了。