我想控制一个别人的程序,当然我没有源代码,只有可执行程序。。。 我想控制一个别人的程序,当然我没有源代码,只有可执行程序。我想让自己的程序模仿鼠标点击操作,点击别人程序的一个按钮。不知道这能否可行?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用SPY++工具和 SendMessage , PostMessage 函数 用Spy找到按钮的窗口句柄然后SendMessage就行啦 用FindWindowEx找到那个按钮窗口的句柄,然后向他发送一个WM_LBUTTONDOWN和一个WM_LBUTTONUP消息。 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); 控制别人的程序要看控制在什么级别,如果你是简单模拟一个鼠标,太简单,发几个消息就可以了,如果要截获别的应用程序的消息、函数调用,甚至还要动态修改别的应用程序,那么你要对windows hook、hookapi、inject dll、pe import等有一定的了解,我的主页上有很多联众补丁(外挂),都是A控制B方式的应用程序,有兴趣的人可以看看。 http://www.oldworm.com 现在我的想法是: 既然我是想模拟点击操作,那么就不需要什么界面了,可用VC我可不知道怎么做一个不需要界面的程序。是不是就是 win32 Application ??? 写一个窗口过程的dll然后把他注射到你想控制进程中 把你的MainFrame窗口HIDE 起来就可以了。 添加按钮显示直方图 外网与局域网IP相同的疑问? FLASH控件透明 Win32中怎样定义一个非菜单加速键 用纯SDK方式做界面的几个问题,困扰我这个初学者很久了 关于MDI的主框架和子框架的问题!在线等 能不能使用LoadLibrary的方式导出一个类? 如何改变CHECK BOX的背景色?回复者都有分 请问CFrameWnd可以作子窗口吗? 关于DUILib界面的问题! 请帮我看一下这个函数的说明!谢谢 关于c/s 结构, 请进来!!!!!!!!
然后SendMessage就行啦
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);
然后把他注射到你想控制进程中