社区
进程/线程/DLL
帖子详情
怎么控制一 exe 软件?
kacy16
2009-06-09 10:40:43
小弟我目前想实现这样一个功能:
有一个叫 Sample.exe的程序(该程序没有代码,也没有任何资料的。),
该软件一个界面,里面有一编辑输入框,有一个按钮。想实现自己写一个程序,该程序可以操纵Sample.exe,可以往该Sample.exe的编辑输入框中输入数据,可以点击按钮的功能。
烦请各位高手提供提供思路。
...全文
52
29
打赏
收藏
怎么控制一 exe 软件?
小弟我目前想实现这样一个功能: 有一个叫 Sample.exe的程序(该程序没有代码,也没有任何资料的。), 该软件一个界面,里面有一编辑输入框,有一个按钮。想实现自己写一个程序,该程序可以操纵Sample.exe,可以往该Sample.exe的编辑输入框中输入数据,可以点击按钮的功能。 烦请各位高手提供提供思路。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
29 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ccyybn
2011-12-03
打赏
举报
回复
这个帖子让我收获良多
litomboy
2009-06-10
打赏
举报
回复
学习
keanchen0928
2009-06-10
打赏
举报
回复
mark
greatws
2009-06-10
打赏
举报
回复
[Quote=引用 12 楼 kacy16 的回复:]
现在碰到一问题:
1 我现在是用 CreateProcess 来调用(运行)Sample.exe,可以调用成功,但是用FindWindowEx(NULL,NULL,NULL,"Sample"),获得窗体的句柄不行的?
[/Quote]
FindWindowEx是用来查找子窗口的,查找主窗口用FindWindow
skyxie
2009-06-10
打赏
举报
回复
[Quote=引用 12 楼 kacy16 的回复:]
现在碰到一问题:
1 我现在是用 CreateProcess 来调用(运行)Sample.exe,可以调用成功,但是用FindWindowEx(NULL,NULL,NULL,"Sample"),获得窗体的句柄不行的?
[/Quote]
用窗口标题不保险,比如中英文的OS可能不同,程序运行时也可能是改变标题
建议使用FindWindowEx 第3个参数,classname进行查找,你可以用spy++看看sample主窗口的classname
kacy16
2009-06-10
打赏
举报
回复
现在碰到一问题:
1 我现在是用 CreateProcess 来调用(运行)Sample.exe,可以调用成功,但是用FindWindowEx(NULL,NULL,NULL,"Sample"),获得窗体的句柄不行的?
kacy16
2009-06-10
打赏
举报
回复
现在正在按照两位高人的思路正在测试,看是否能成功控制这个EXE软件.
zlmzhuanjia
2009-06-10
打赏
举报
回复
up 学习了
dengxuxing
2009-06-10
打赏
举报
回复
强人啊!学习
Fireway2008
2009-06-10
打赏
举报
回复
[Quote=引用 26 楼 kacy16 的回复:]
在各位的帮助下,现在我基本能控制一 exe文件了.但是还有一些小问题:
假如两个编辑框都在同一个GroupBox里面,怎么去区分他们?是否要需要根据control id等信息来判断哪个编辑框?
欢迎大家继续对该问题发表意见,准备过几天才结帖.
[/Quote]
根据控件ID 是最妥当的方法,
不同窗体有可能有相同的ID控件。
就如同2个不同的人,他们身高都是175。
哈利路亚1874
2009-06-10
打赏
举报
回复
二楼正解之一
kacy16
2009-06-10
打赏
举报
回复
在各位的帮助下,现在我基本能控制一 exe文件了.但是还有一些小问题:
假如两个编辑框都在同一个GroupBox里面,怎么去区分他们?是否要需要根据control id等信息来判断哪个编辑框?
欢迎大家继续对该问题发表意见,准备过几天才结帖.
kacy16
2009-06-10
打赏
举报
回复
谢谢 skyxie !
MSDN上的解释是:
The SendMessage function sends the specified message to a window or windows. It calls the window procedure for the specified window and does not return until the window procedure has processed the message.
我的理解:一直等到处理完消息(也就是该消息所对应的函数也执行完毕),SendMessage才返回.所以,用SendMessage可以起到
同步的作用.
skyxie
2009-06-10
打赏
举报
回复
[Quote=引用 23 楼 kacy16 的回复:]
谢谢!用PostMessage问题更大,我是需要Sample.exe中的某个按钮处理完后,我自己才好进行下一步动作。
所以,我想问的是:跨进程的通过SendMessage()来传递消息,也是否等到该消息处理完后才返回呢?
[/Quote]
是的
你可以仔细看看 MSDN SendMessage
kacy16
2009-06-10
打赏
举报
回复
谢谢!用PostMessage问题更大,我是需要Sample.exe中的某个按钮处理完后,我自己才好进行下一步动作。
所以,我想问的是:跨进程的通过SendMessage()来传递消息,也是否等到该消息处理完后才返回呢?
littlefish636
2009-06-10
打赏
举报
回复
[Quote=引用 21 楼 kacy16 的回复:]
我另外有一个疑问:
一般来说,SendMessage()函数是等 该消息 处理完后才返回的?
但是现在是跨进程的通过SendMessage()来传递消息,也是否等到该消息处理完后才返回呢?
例如:
向对话框发送 BN_CLICKED的WM_COMMAND 消息
SendMessage(hDlg, WM_COMMAND, (WPARAM)(BN_CLICKED) …
是否等到该按钮的按击事件处理完才返回?
[/Quote]
PostMessage(hDlg, WM_COMMAND, 按钮ID, 0)...
kacy16
2009-06-10
打赏
举报
回复
我另外有一个疑问:
一般来说,SendMessage()函数是等 该消息 处理完后才返回的?
但是现在是跨进程的通过SendMessage()来传递消息,也是否等到该消息处理完后才返回呢?
例如:
向对话框发送 BN_CLICKED的WM_COMMAND 消息
SendMessage(hDlg, WM_COMMAND, (WPARAM)(BN_CLICKED) …
是否等到该按钮的按击事件处理完才返回?
路人乙2019
2009-06-10
打赏
举报
回复
[Quote=引用 2 楼 skyxie 的回复:]
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) …
[/Quote]对头.
luckyboy101
2009-06-10
打赏
举报
回复
强,学习
kacy16
2009-06-10
打赏
举报
回复
现在问题大致解决了,
幸好那Sample.exe中的两个 编辑框(TMemo) 分别在 两个 GroupBox 里面,而且这两个 GroupBox有不同的标题,
所以我就容易找到了.我的大致方法如下:
1 先找到一个GroupBox
HWND hGroup1=::FindWindowEx(g_hwndExe,NULL,"TGroupBox","Group1");
2 再去找TMemo
HWND hMemo1=::FindWindowEx(hGroup1,NULL,"TMemo",NULL);
3 然后,这样就往这个编辑框输入了 aryData里面的数据.
::SendMessage(hMemo1,WM_SETTEXT,0,(LPARAM)aryData);
非常谢谢 oyljerry,skyxie,greatws等各位兄弟大力出手相助,
因为现在时间比较紧,所以过一段时间再结帖.
也非常欢迎大家继续讨论该类问题,假如两个编辑框都在同一个GroupBox里面,怎么去区分他们?是否要根据control id等信息?
加载更多回复(9)
如何通过.
exe
文件
控制
一台电脑
漏洞如何实现发送一个.
exe
文件偷偷
控制
他人的电脑?这个想法很刑的,所以我只是说明我的实现方式,具体操作建议仅用于hvv等专业领域,请勿以身试法。首先我们分析一下.
exe
文件的实际应用场景---windows系统的电脑,...
开源一款远程
控制
软件
—— pcshare
这里开放一款远程
控制
软件
的源码——pcshare,该
软件
分为被
控制
端和
控制
端。部分界面如下:
控制
端通过寄生在被
控制
端的后台程序来实现
控制
,可以对被
控制
台进行文件管理、屏幕监控、键盘监控、监控管理、查看被
控制
...
电脑桌面上的
控制
面板和计算机怎么没有了,
控制
面板在哪?没有
控制
面板怎么办...
控制
面板是电脑
控制
核心,或者称为
控制
中心,从
控制
面板中我们可以进入电脑基本的系统设置和
控制
,如,添加硬件、添加/删除
软件
、
控制
用户帐户,更改辅助功能选项、电脑外观设置、声音设置、打印机设置等等都可以在...
计算机房的红蜘蛛
软件
怎么取消,如何脱离学校机房的红蜘蛛
控制
软件
的
控制
?...
在学校上机房课时,老师总是能通过红蜘蛛,极域这些
软件
来
控制
或监视我们的电脑,那么如何不被这些
软件
控制
呢,本文以红蜘蛛教室
控制
软件
为例,北陌来教你下面两种方法来脱离
控制
:1.断开红蜘蛛
软件
有些同学可能试过...
电脑怎么卸载
软件
?彻底卸载
软件
,4个方法分享
电脑怎么卸载
软件
?很多小伙伴喜欢在自己的电脑上安装各式各样的
软件
,可电脑空间不足,那就需要通过卸载电脑
软件
来清理空间了。电脑怎么卸载
软件
?彻底卸载
软件
有什么办法?今天小编分享了4个卸载
软件
的方法,来看...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章