高分求助:怎么调用一个程序,并捕获这个程序运行时的消息?

ryuxy 2011-09-03 05:40:07
比如我想调用一个A.EXE(这个程序不是delphi开发的),A.EXE在执行的时候,如果有弹出对话框什么的,能把这个内容截获,麻烦哪位高手给一个类似的参考代码,如果代码很长,麻烦发到我邮箱:jimmy.y.xie@163.com, 非常感谢!
...全文
210 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
shijies 2011-10-14
  • 打赏
  • 举报
回复
用findwindow函数找对话框的句柄,然后对其操作。
ADSLAN 2011-10-14
  • 打赏
  • 举报
回复
后台找弹出对入框的句柄 发送鼠标点击消息进行操作.
随行的太阳 2011-10-14
  • 打赏
  • 举报
回复
up,up。
Reverse.King 2011-10-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 feifeia007 的回复:]
都不发代码新手怎么学的会
[/Quote]
谁有责任要教你
jingtuzhong 2011-09-27
  • 打赏
  • 举报
回复
hook类型常量 wh_callwndproc 一个窗口函数过滤器,当窗口函数收到一个消息时,会调用这个挂钩函数
RichBrilliant 2011-09-27
  • 打赏
  • 举报
回复
都不发代码新手怎么学的会
[Quote=引用 11 楼 codegame 的回复:]
对求代码的一律屏蔽
[/Quote]
Reverse.King 2011-09-25
  • 打赏
  • 举报
回复
对求代码的一律屏蔽
ryuxy 2011-09-24
  • 打赏
  • 举报
回复
求一个具体的例子或范例代码,谢谢!
ryuxy 2011-09-24
  • 打赏
  • 举报
回复
这个只是调用别的exe程序,无法捕获其运行的消息:

[Quote=引用 7 楼 liangj163 的回复:]
这是咱公司的更新后后调用的.EXE文件,些许对你有帮助.没办法我还是菜鸟!正在看代码....
procedure TfrmMain.AlphaBlendtimerTimer(Sender: TObject);
begin
if bFlag then begin
if FileExists(GetCurrentDir + '\SMStrade.exe') then
ShellE……
[/Quote]
ryuxy 2011-09-13
  • 打赏
  • 举报
回复
就像360软件管家一样,有程序更新时,调用更新程序,后台就直接运行程序了,自动下一步什么的都搞定,让程序安装在360的里面运行,想要的是这样的效果。哪位大侠能否有具体的范例参考一下?谢谢!
sgw520 2011-09-13
  • 打赏
  • 举报
回复
1,注入到你要求的进程中去.
2,HOOK messagebox函数获取文字内容.
llshanks 2011-09-13
  • 打赏
  • 举报
回复
这是咱公司的更新后后调用的.EXE文件,些许对你有帮助.没办法我还是菜鸟!正在看代码....
procedure TfrmMain.AlphaBlendtimerTimer(Sender: TObject);
begin
if bFlag then begin
if FileExists(GetCurrentDir + '\SMStrade.exe') then
ShellExecute(0, 'open', PChar(GetCurrentDir + '\SMStrade.exe'), nil, PChar(GetCurrentDir()), SW_MAXIMIZE) //SW_MINIMIZE 最小化窗口,活动状态给令一个窗口
end;
close;
end;

uses shellapi,SysUtils;
ShellExecute(0, 'open', PChar(GetCurrentDir + '\SMStrade.exe'), nil, PChar(GetCurrentDir()), SW_MAXIMIZE)这句应该可以了.

ww949494 2011-09-06
  • 打赏
  • 举报
回复
同1楼,API HOOK messagebox

先看Messagebox在系统的哪个DLL,然后载入这个DLL,获取Messagboex的地址然后JMP到你的DLL里的处理函数,这时候你就拿到参数了,当然你需要让程序正常运行下去,所以你要把Messagbeox还原,然后PUSH 4个参数,就是Messagebox的4个参数, 注意顺序, PUSH PUSH PUSH PUSH CALL MESSAGEBOX 即可
ryuxy 2011-09-05
  • 打赏
  • 举报
回复
能否给个具体的范例?很久没有用delphi了,现在临时有个任务需要用到delphi处理一下,现在真的成了菜鸟了。谢谢!
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gyk120 的回复:]
API HOOK,注入,钩messagebox函数
[/Quote]
俘获系统消息
mr_cpp 2011-09-04
  • 打赏
  • 举报
回复
MARK
gyk120 2011-09-03
  • 打赏
  • 举报
回复
API HOOK,注入,钩messagebox函数

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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