如何得到TOOLbar上某个按钮的句柄,然后给这个按钮发一个点击的消息

wcm 2009-08-06 01:57:47
各位好
我已经知道TOOLBAR的句柄了,但是我如何得到TOOLbar上某个按钮的句柄,然后用sendmessage给这个按钮发一个点击的消息
请各位直接给代码 谢谢了 搞了一天了
...全文
509 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
coffee54676 2009-08-14
麻烦的很
取得toolbar句柄,然后取得按钮ID ,用sendmessage 发送wm_command 给这个按钮ID,理论上是这样,不过我没有试成功过。
===
下面是dephi写的,据说可以,自己看看

uses CommCtrl, Types; function ToolbarButtonClick( // 模拟点击其他进程的Toolbar按钮 mHandle: THandle; // Toolbar句柄
mIndex: Integer // 按钮序号 ): Boolean;
//设计 Zswang 2006-11-13 wjhu111#21cn.com 尊重作者,转贴请注明出处
var vRect: TRect;
vSmallPoint: TSmallPoint;
vProcessId: DWORD;
vProcess: THandle;
vPointer: Pointer;
vNumberOfBytesRead: Cardinal;
begin Result := False;
if mHandle <= 0 then Exit;
GetWindowThreadProcessId(mHandle, @vProcessId);
if vProcessId <= 0 then Exit;
vProcess := OpenProcess(PROCESS_VM_OPERATION or PROCESS_VM_READ or PROCESS_VM_WRITE, False, vProcessId);
vPointer := VirtualAllocEx(vProcess, nil, $1000, MEM_RESERVE or MEM_COMMIT, PAGE_READWRITE);
try SendMessage(mHandle, TB_GETITEMRECT, mIndex, Integer(vPointer)); ReadProcessMemory(vProcess, vPointer, @vRect, SizeOf(TRect), vNumberOfBytesRead); if vNumberOfBytesRead <= 0 then Exit;
finally VirtualFreeEx(vProcess, vPointer, 0, MEM_RELEASE); CloseHandle(vProcess); end;
vSmallPoint := PointToSmallPoint(CenterPoint(vRect));
SendMessage(mHandle, WM_LBUTTONDOWN, MK_LBUTTON, Longint(vSmallPoint));
SendMessage(mHandle, WM_LBUTTONUP, MK_LBUTTON, Longint(vSmallPoint));
Result := True;
end; { ToolbarButtonClick }
回复
wcm 2009-08-07
有没有人帮助啊
回复
wcm 2009-08-06
兄弟们啊,那我该如何做啊,请帮助我啊,一定帮助啊
回复
SYSSZ 2009-08-06
用spy++查看一下,TOOLBAR的子窗口句柄为0,子窗口列表为空,因此,一般窗口操作不解决问题.
回复
wcm 2009-08-06
请再帮助
回复
wcm 2009-08-06
好像,无法得到lngControl ,调式后的值为0 请再帮助
回复
junki 2009-08-06
Private Const WM_LBUTTONDOWN = &H201
lngControl = FindWindowEx(lngWindow, 0, "Button", "取消")
lngRet = SendMessage(lngControl, WM_LBUTTONDOWN, 0, 0&)
'lngWindow为TOOLbar的句柄
'lngControl为按钮句柄
回复
wcm 2009-08-06
兄弟们 给点办法啊 :(
回复
wcm 2009-08-06
如果没有按钮 那么如何给这个按钮发消息啊
回复
wcm 2009-08-06
各位帮忙啊,不要沉没啊
回复
toolbar的按钮没有句柄
回复
lxq19851204 2009-08-06
不懂,顶一下.
回复
相关推荐
发帖
API
创建于2007-09-28

1465

社区成员

VB API
申请成为版主
帖子事件
创建了帖子
2009-08-06 01:57
社区公告
暂无公告