MFC中,如何控制另一个程序?

hui05504 2015-10-12 01:53:23
一个A程序控制另一个程序B窗体,具体问题如下:
1.向B的窗体的编辑框中输入指定的字符串,例如用户名和密码
2.向B的窗体发送按键消息,例如登陆或者注册。

其实说白了,就是想替代程序B的登陆界面,直接用程序A来进行登陆,因为程序B的代码我们没办法改动。

多谢!!
...全文
204 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2015-10-13
  • 打赏
  • 举报
回复
keybd_event/SendInput()
笨笨仔 2015-10-12
  • 打赏
  • 举报
回复
觉的模拟键盘和鼠标输入比较靠谱
paschen 2015-10-12
  • 打赏
  • 举报
回复
jacky_qiu 2015-10-12
  • 打赏
  • 举报
回复
如楼上说,如果不是DIRECT UI 就比较容易了! 用spy++ 测试一下有没有窗口句柄。
DIRECT UI 可以考虑模拟发送按键信息! 。可email我(jacky_qiu@139.com),看能否帮上忙!
赵4老师 2015-10-12
  • 打赏
  • 举报
回复
removefile 2015-10-12
  • 打赏
  • 举报
回复
如果是不是DIRECT UI实现的界面就比较容易
信阳毛尖 2015-10-12
  • 打赏
  • 举报
回复
1、线通过FindWindow找到B窗口
2、EnumChildWindows找到编辑框句柄,然后给编辑框发送WM_SETTEXT消息
3、登陆或者注册是按钮吗?如果是,向按钮发送WM_LBUTTONDOWN消息,如果不行,尝试模拟WM_CLICK消息

HWND hParantB = ......;
HWND hWndBtnLogin = ......;
//.....
//.....
//.....

WPARAM wParam = BN_CLICKED;
wParam <<= 16; // 左移16位
wParam |= ::GetDlgCtrlID(hWndBtnLogin);
LPARAM lParam = (LPARAM)hWndBtnLogin;
::PostMessage(hParantB, WM_COMMAND, wParam, lParam);

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧