delphi sendmessage实现点击其他程…

sendmessage实现点击其他程序上的按钮<wbr><wbr></wbr></wbr>

<wbr></wbr>

<wbr></wbr>

下面的代码是用QQ登录来作实验的。

procedure TForm1.Button3Click(Sender: TObject);

var

h,h1:THandle;

begin

<wbr><wbr>h:=findwindow(nil,'QQ用户登录');//h是登录窗口句柄</wbr></wbr>

<wbr><wbr>if h&lt;&gt;0 then</wbr></wbr>

<wbr><wbr>begin</wbr></wbr>

<wbr><wbr>h1:=findwindowex(h,0,nil,'登录');//h1是登录按钮的句柄</wbr></wbr>

<wbr><wbr>edit3.Text:=inttostr(h1);</wbr></wbr>

<wbr><wbr>SENDmessage(h,WM_COMMAND,MAKELONG(GETDLGCTRLID(H1),BN_CLICKED),0);</wbr></wbr>

<wbr><wbr>end</wbr></wbr>

<wbr><wbr>else</wbr></wbr>

<wbr><wbr>showmessage('false');</wbr></wbr>

end;

程序实现的步骤是

首先查找QQ登录窗口的句柄,然后根据这个句柄在查找其窗口内名为“登录”的按钮的句柄。

这个时候就可以通过按钮的句柄对其进行操作。

这里主要在sendmessage的参数

我最早时候用sendmessage(h1,BN_CLICKED,0,0);

结果无效,后来才知道,BN_CLICKED是notification消息~ 必须要有ID……

使用sendmessage(h1,WM_LBUTTONDOWN,0,0);发送鼠标左键点击消息,也是无效不知道什么原因

<wbr></wbr>

========================================自己的代码=================================

procedure TForm1.Button1Click(Sender: TObject);
var

h,h1:THandle;

begin

<wbr><wbr> h:=findwindow(nil,'乘车线路问题');//h是登录窗口句柄<br><wbr><wbr> if h&lt;&gt;0 then<br><wbr><wbr><wbr> begin<br><wbr><wbr><wbr> h1:=findwindowex(h,0,nil,'重新读取数据');//h1是Button1按钮的句柄<br><wbr><wbr><wbr> edit1.Text:=inttostr(h1);<br><wbr><wbr> //SENDmessage(h,WM_COMMAND,MAKELONG(GETDLGCTRLID(H1),BN_CLICKED),0);<br><wbr><wbr><wbr> sendmessage(h1,WM_LBUTTONDOWN,0,0);//down 必须有<br><wbr><wbr><wbr> sendmessage(h1,WM_LBUTTONUP,0,0);<wbr> //up 必须有<br><wbr><wbr> end</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr> else</wbr></wbr>

<wbr><wbr> showmessage('false');</wbr></wbr>

end;
------------------------------------------------------------------

Gameh:=FindWindow(nil,'对对碰角色版' );
<wbr><wbr><wbr><wbr> showmessage(inttostr(Gameh));<br><wbr><wbr><wbr><wbr> //SendMessage(Gameh,Messages.WM_LBUTTONDOWN,0,$0180017A);//按下<br><wbr><wbr><wbr><wbr> //SendMessage(Gameh,Messages.WM_LBUTTONUP, 0, $0180017A);//抬起<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> SendMessage(Gameh,Messages.WM_LBUTTONDOWN,0,$0187018C);//按下<br><wbr><wbr><wbr><wbr> SendMessage(Gameh,Messages.WM_LBUTTONUP, 0, $0187018C);//抬起</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值