如何向指定窗口的按钮发送WM_COMMAND消息???

Delphi_Li 2002-12-22 11:08:38
我是这样写的:
程序的流程是这样的:
1、通过FindWindow得到要发送消息的程序的主窗口;
2、通过FindWindowEx得到要发送消息的程序的按钮的句柄
3、通过SendMessage发送消息

以下是发送消息的部分:

H是指定程序的按钮的窗口句柄。
ID是通过GetWindowLong函数得到的。
SendMessage( GetParent( H ), WM_COMMAND, ID, H );

以上程序总是失败,望高手赐教!!!
...全文
135 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
blucecat 2002-12-22
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
h:THandle;
begin
h := FindWindow(nil,'信使服务 ');
h := FindWindowEX(h,0,'Button','确定');
SendMessage(h,BM_CLICK,0,0);
PostMessage(h,BM_CLICK,0,0);
end;
killlaoli 2002-12-22
  • 打赏
  • 举报
回复
看了一下WM_COMMAND的帮助,说了半天的menu,我的理解是当选中一个菜单项的时候才会触发这个消息吧。不知道楼主想干什么,如果只想模拟一个点击按牛的操作的话,可以发送BM_CLICK消息。

举例,点击开始按牛。
procedure TForm1.Button1Click(Sender: TObject);
var
handle1: HWND;
begin
handle1 := GetWindow(FindWindow('Shell_TrayWnd', nil), GW_CHILD);
SendMessage(handle1, BM_CLICK, 0, 0);
end;

可能跟楼主说的不是一个意思,那就当我瞎说了。为了惩罚我,帮我解决个问题吧!
http://expert.csdn.net/Expert/topic/1281/1281613.xml?temp=.121792
lws0472 2002-12-22
  • 打赏
  • 举报
回复
procedure TForm1.Button2Click(Sender: TObject);
begin
showmessage('aaa');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
sendmessage(form1.Handle,wm_command,0,button2.Handle);
end;
anh 2002-12-22
  • 打赏
  • 举报
回复
我也觉的blucecat(一言稀音) 说的是可以的你可以试一下。
实在不行的话你可以在google中找一下FindWindowEx();的实例看看。

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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