如何实现控制另一个程序运行的功能?

Tensionli 2005-11-09 09:59:07
各位大侠:
我现在想实现这样一种功能:有一个别人的程序,这个程序的主界面上有一个按钮,现在我想在我的程序中,单击一个BUTTON就可以直接调用那个程序主界面上的按钮,即触发那个程序BUTTON的CLICK事件,如何实现呀!请各位支招,提供思路,最好粘上源代码。谢谢!
...全文
131 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tensionli 2005-11-09
  • 打赏
  • 举报
回复
spy是什么工具呀?
Tensionli 2005-11-09
  • 打赏
  • 举报
回复
To :xixuemao(动感超淫)
谢谢你的帮助,能给贴出个例子吗?我对API不熟悉。
xixuemao 2005-11-09
  • 打赏
  • 举报
回复
用findwindow和findwindowex获得button的handle,然后sendmessage就可以了。

由于程序中控件的层次关系不知道,没法给你帖代码,自己用spy等工具看看吧先!
baiduan 2005-11-09
  • 打赏
  • 举报
回复
1 既然已经知道了要控制的程序。
那么用findwindow找到你所要
控制的程序窗体的handle。

2 然后找这个窗体包含的子窗体的handle(按钮也是一种‘窗体’)

使用枚举函数(api)
BOOL EnumChildWindows(
HWND hWndParent, // handle to parent window // 父窗口句柄
WNDENUMPROC lpEnumFunc, // callback function // 回调函数的地址
LPARAM lParam // application-defined value // 你自已定义的参数
);

再定义一个回调函数,像下面这样:

BOOL CALLBACK EnumChildProc(
HWND hwnd, // handle to child window
LPARAM lParam // application-defined value
);

注意:这个回调函数要么是类的静态函数,要么就是一个全局的函数。

如果这个handle是按钮
if tobject=Tbutton
and caption:='you look'
那么sendmessage给你找到的程序句柄,给他一个buttonclik信息。
具体怎么写忘了,这是一个思路。
msn上有,这些api的用法
abc3000 2005-11-09
  • 打赏
  • 举报
回复
mark
clark_m 2005-11-09
  • 打赏
  • 举报
回复
如果那个程序上的button有键盘触发件,可以在你的程序中发送键值到你需要用的程序上就可以了!
xixuemao 2005-11-09
  • 打赏
  • 举报
回复
spy是什么工具呀?
=========

说不如做

你去搜索Spy++然后下载一个,试试就知道了,很实用的。

1,183

社区成员

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

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