首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

如何控制一 exe 软件

2012-02-09 
怎么控制一 exe 软件?小弟我目前想实现这样一个功能:有一个叫 Sample.exe的程序(该程序没有代码,也没有任

怎么控制一 exe 软件?
小弟我目前想实现这样一个功能:
有一个叫 Sample.exe的程序(该程序没有代码,也没有任何资料的。),
该软件一个界面,里面有一编辑输入框,有一个按钮。想实现自己写一个程序,该程序可以操纵Sample.exe,可以往该Sample.exe的编辑输入框中输入数据,可以点击按钮的功能。
烦请各位高手提供提供思路。

[解决办法]
FindWindow 等查找Sample.exe的控件等,然后发送消息输入WM_SETTEXT,WM_CLICK等消息来控制对话框上的输入框,按钮
[解决办法]

1. 得到 主对话框HWND,编辑输入框 / 按钮 的HWND
EnumWindows + FindWindowEx 找到 Sample.exe 的 主对话框HWND (假设为hDlg), 编辑输入框 / 按钮 的HWND (假设为hEdit, hBtn)

2. 模拟输入数据
SendMessage(hEdit, WM_SETTEXT ...) 

3. 模拟点击按钮
3.1)
用spy++找到按钮的control ID (假设为nID)
3.2)
向对话框发送 BN_CLICKED的WM_COMMAND 消息
SendMessage(hDlg, WM_COMMAND, (WPARAM)(BN_CLICKED)<<16 + nID, (LPARAM)hBtn);
[解决办法]

探讨
非常谢谢oyljerry兄的几次出手相助了。
还有几个小问题:
1 Sample.exe应该不是用VC来开发,估计是用C++Builder来开发的,这样会有影响吗?
2 假如有两个不同的编辑框或者按钮,怎么去区分它们呢?

另外,已经给我说了大致的思路,能否再详细一点呢?谢谢!

[解决办法]
探讨
谢谢 skyxie 的帮助。
有两个按钮,是否自己用Spy++去找到按钮的control ID?另外这个control ID是否会变化?

[解决办法]
学习
[解决办法]
强人啊!学习
[解决办法]
up 学习了
[解决办法]
探讨
现在碰到一问题:

1 我现在是用 CreateProcess 来调用(运行)Sample.exe,可以调用成功,但是用FindWindowEx(NULL,NULL,NULL,"Sample"),获得窗体的句柄不行的?

[解决办法]
探讨
现在碰到一问题:

1 我现在是用 CreateProcess 来调用(运行)Sample.exe,可以调用成功,但是用FindWindowEx(NULL,NULL,NULL,"Sample"),获得窗体的句柄不行的?


[解决办法]
学习

[解决办法]
强,学习
[解决办法]
探讨

1. 得到 主对话框HWND,编辑输入框 / 按钮 的HWND
EnumWindows + FindWindowEx 找到 Sample.exe 的 主对话框HWND (假设为hDlg), 编辑输入框 / 按钮 的HWND (假设为hEdit, hBtn)

2. 模拟输入数据
SendMessage(hEdit, WM_SETTEXT ...)

3. 模拟点击按钮
3.1)
用spy++找到按钮的control ID (假设为nID)
3.2)
向对话框发送 BN_CLICKED的WM_COMMAND 消息
SendMessage(hDlg, WM_COMMAND, (WPARAM)(BN_CLICKED) …

[解决办法]
探讨
我另外有一个疑问:
一般来说,SendMessage()函数是等 该消息 处理完后才返回的?
但是现在是跨进程的通过SendMessage()来传递消息,也是否等到该消息处理完后才返回呢?
例如:
向对话框发送 BN_CLICKED的WM_COMMAND 消息
SendMessage(hDlg, WM_COMMAND, (WPARAM)(BN_CLICKED) …

是否等到该按钮的按击事件处理完才返回?

[解决办法]
探讨
谢谢!用PostMessage问题更大,我是需要Sample.exe中的某个按钮处理完后,我自己才好进行下一步动作。
所以,我想问的是:跨进程的通过SendMessage()来传递消息,也是否等到该消息处理完后才返回呢?

[解决办法]
二楼正解之一
[解决办法]
探讨


在各位的帮助下,现在我基本能控制一 exe文件了.但是还有一些小问题:
假如两个编辑框都在同一个GroupBox里面,怎么去区分他们?是否要需要根据control id等信息来判断哪个编辑框?

欢迎大家继续对该问题发表意见,准备过几天才结帖.

热点排行