请问各位大侠,如何操纵其它程序中的 TreeView 组件(200分)

  • 主题发起人 主题发起人 hhl2005
  • 开始时间 开始时间
H

hhl2005

Unregistered / Unconfirmed
GUEST, unregistred user!
如何操纵其它程序中的 TreeView 组件

比如,捕捉到其它程序的指定窗口,将窗口的 TreeView 中的某项 Node 设为选中状态等!

大分值哦!
 
点击节点的例子:
__________________
procedure ClickItem(hTree: THandle; hItem: HTREEITEM);
var
aRect: TRect;
begin
TreeView_GetItemRect(hTree, hItem, aRect, True);
SendMessage(hTree, WM_LBUTTONDOWN, 0,
(aRect.Left+aRect.Right) div 2 + (aRect.Top+ aRect.Bottom)*$10000 div 2);
SendMessage(hTree, WM_LBUTTONUP, 0,
(aRect.Left+aRect.Right) div 2 + (aRect.Top+ aRect.Bottom)*$10000 div 2);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
hTreeView: THandle;
Item: TTVItem;
S: string;
begin
hTreeView := $0002056A; // 你自己得到,我是用spy++

ClickItem(hTreeView, TreeView_GetSelection(hTreeView));
end;
 
TreeView_GetSelection(hTreeView) 这是个什么东东啊
 
这个是在CommCtrls里定义的方法,其实是封装的消息。你在TreeView的实现里可以找到
 
问题严重,编译不过
 
哈哈,需要hook了哦,而hook的话有几种了,下面是我收藏的一个程序,希望对你有用,对了,楼主如果解决了问题,我也希望你把你的解决办法提出来。谢谢!
http://www.delphibbs.com/keylife/iblog_show.asp?xid=24885
 
用hook?太夸张了吧
 
不用hook也整出来,那才夸张呢。
 
不至于吧,我可是运行过的代码
_________________________
来自:hhl2005, 时间:2006-10-18 15:36:15, ID:3599840
问题严重,编译不过
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部