如何在一个程序中控制另一个程序的按钮被点击?

 
CSDN - 专家门诊 - Delphi Windows SDK/API问题
回复 | 推荐 | 收藏 | 专题 | 公告 | 管理 | 关闭窗口  
 
 
主  题:   如何在一个程序控制另一个程序的按钮被点击?
作  者:   st0rm ()
等  级:  
信 誉 值:   100
所属论坛:   Delphi Windows SDK/API
问题点数:   20
回复次数:   7
发表时间:   2006-5-18 9:40:17
     
 
     

求教各位大虾,在自己编的delphi程序 甲 里调用外部程序 乙 时,想要实现程序甲中一个按钮被点击后程序乙被打开,同时其中某个按钮被点击,如何来做?
现在已经可以用API函数ShellExecute和FindWindow来打开程序和找到窗口了,但是用XiaoFang(虹瑚) 大虾的方法
HWND hWnd=::FindWindow(NULL,"窗口名称")
::SendMessage(hWnd,WM_COMMAND,按钮的ID,0)
似乎没有实现点击程序乙按钮的功能
请问这个“按钮的ID”是什么?我用spy4win工具找到了某个按钮的“标识(ID)”,例如为0x00000006 (6),这时用SendMessage(hWnd,WM_COMMAND,6,0)没有得到所需功能,请问为何?
 
  回复人:st0rm() ( ) 信誉:100 2006-5-18 11:21:12 得分:0
 
 
?

自己顶一下,望大虾多多帮助
Top
 
  回复人:xixuemao(从哪里跌倒就要从哪里抬出去) ( ) 信誉:112 2006-5-18 11:32:10 得分:0
 
 
?

既然找到窗口的handle了那就用FindWindowEx一层一层找,知道找到button的handle就可以喽。
这个容器层次关系用spy也能看出来啊。
Top
 
  回复人:iorizht(风) ( ) 信誉:98 2006-5-18 16:41:59 得分:0
 
 
?

sendmessage(hWnd,BM_CLICK,0,0);
Top
 
  回复人:st0rm() ( ) 信誉:100 2006-5-19 8:22:10 得分:0
 
 
?

但是用spy看到的button的handle每次打开外部程序乙的时候都不一样
而且FindWindowEx(hWnd,0,0,0)后面不能象FindWindow(NULL,"窗口名称")一样设置要找的窗口名,就不知道它返回的是什么了
Top
 
  回复人:st0rm() ( ) 信誉:100 2006-5-19 11:24:29 得分:0
 
 
?

BM_CLICK这个命令有用,谢谢!
另外,如果现在想要设置一个类名为Edit的外部程序子窗口的text属性,应该如何做,我用WM_SETTEXT命令试过了,但是不行,请问为什么?
Top
 
  回复人:ahjoe(强哥) ( ) 信誉:106 2006-5-20 22:09:51 得分:0
 
 
?

如果按钮有快捷键 就更简单了,激活窗口,然后发ALT键,快捷字符
----------------------------------------------------------------------------------------------
SendKey
----------------------------------------------------------------------------------------------
Top
 
  回复人:FCU(彩色铅笔) ( ) 信誉:91 2006-5-21 0:07:39 得分:0
 
 
?

都是强人啊
 

你可能感兴趣的:(如何在一个程序中控制另一个程序的按钮被点击?)