如何打开其他程序的窗口?(50分)

  • 主题发起人 主题发起人 semsy
  • 开始时间 开始时间
S

semsy

Unregistered / Unconfirmed
GUEST, unregistred user!
有A、B两个程序,B程序有FORM1,FORM2,如何在A程序的BUTTON的CLICK事件中打开B程序的FORM2;
例如:如何用自已的程序打开画图的“保存”窗口
 
API 或参数!
 
把B程序写成DLL,传递参数或过程给A程序,不知道楼主兄弟,这样是否可行?
 
B程序是别人写好的,比如画图
 
在A程序中找到B程序的相应按钮的句柄,然后发送鼠标消息给它就可以了。
 
with 新窗体.create(nil) do
begin
if showmodal = IDOK then
begin
.....
end;
free;
end;
这样就可以了
 
问题是A程序中的BUTTON没有标题,而且不只有一个BUTTON,要怎样才能找到它的句柄呢
 
SENDMESSAGE或POSTMESSAGE
 
没找到句柄如何能SENDMESSAGE和POSTMESSAGE啊
 
api函数
ShellExecute(0, nil,Path, nil, nil, SW_NORMAL);
path为你要打开的路径
 
你用SPY++去找到关于那个按钮的一些特征,然后对着它的句柄发送按键或MOUSE好了。
 
我已找到那个控件的句柄,然后sendmessage(openhandle,bm_click,0,0);
FORM2也出来了,但为什么我的程序却停止运行了呢,
 
用postmessage发送消息,sendmessage函数要等待消息返回
 
FORM2也出来了,但为什么我的程序却停止运行了呢,

呵呵,没碰过这怪事.

不过楼上说的postmessage可以一试
 
winexec()函数
 
这个问题不是太容易
用钩子,由自己的进程来启动对方的进程,或者是直接查找窗口标题
第二步,跟踪对方调用的api函数,这样对方的每一步动作都在你的掌握之中
第三步,获得需要的函数入口
第四步,调用函数
 
后退
顶部