获取其他程序中TreeView的内容
来源:互联网 发布:java 数据级权限控制 编辑:程序博客网 时间:2024/05/01 01:29
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
(*//标题:获取其他进程中TreeView的文本说明:Window2000+Delphi6调试通过设计:Zswang支持:wjhu111@21cn.com日期:2004-03-26//*)
function TreeNodeGetNext(mHandle: THandle; mTreeItem: HTreeItem): HTreeItem;var vParentID: HTreeItem;begin Result := nil; if (mHandle <> 0) and (mTreeItem <> nil) then begin Result := TreeView_GetChild(mHandle, mTreeItem); if Result = nil then Result := TreeView_GetNextSibling(mHandle, mTreeItem); vParentID := mTreeItem; while (Result = nil) and (vParentID <> nil) do begin vParentID := TreeView_GetParent(mHandle, vParentID); Result := TreeView_GetNextSibling(mHandle, vParentID); end; end;end; { TreeNodeGetNext }
function TreeNodeGetLevel(mHandle: THandle; mTreeItem: HTreeItem): Integer;var vParentID: HTreeItem;begin Result := -1; if (mHandle <> 0) and (mTreeItem <> nil) then begin vParentID := mTreeItem; repeat Inc(Result); vParentID := TreeView_GetParent(mHandle, vParentID); until vParentID = nil; end;end; { TreeNodeGetLevel }
function GetTreeViewText(mHandle: THandle; mStrings: TStrings): Boolean;var vItemCount: Integer; vBuffer: array[0..255] of Char; vProcessId: DWORD; vProcess: THandle; vPointer: Pointer; vNumberOfBytesRead: Cardinal; I: Integer; vItem: TTVItem; vTreeItem: HTreeItem;begin Result := False; if not Assigned(mStrings) then Exit; GetWindowThreadProcessId(mHandle, @vProcessId); vProcess := OpenProcess(PROCESS_VM_OPERATION or PROCESS_VM_READ or PROCESS_VM_WRITE, False, vProcessId); vPointer := VirtualAllocEx(vProcess, nil, 4096, MEM_RESERVE or MEM_COMMIT, PAGE_READWRITE); mStrings.BeginUpdate; try mStrings.Clear; vItemCount := TreeView_GetCount(mHandle); vTreeItem := TreeView_GetRoot(mHandle); for I := 0 to vItemCount - 1 do begin with vItem do begin mask := TVIF_TEXT; cchTextMax := SizeOf(vBuffer); pszText := Pointer(Cardinal(vPointer) + SizeOf(vItem)); hItem := vTreeItem; end; WriteProcessMemory(vProcess, vPointer, @vItem, SizeOf(vItem), vNumberOfBytesRead); SendMessage(mHandle, TVM_GETITEM, 0, lparam(vPointer)); ReadProcessMemory(vProcess, Pointer(Cardinal(vPointer) + SizeOf(TLVItem)), @vBuffer[0], SizeOf(vBuffer), vNumberOfBytesRead); mStrings.Add(StringOfChar(#9, TreeNodeGetLevel(mHandle, vTreeItem)) + vBuffer); vTreeItem := TreeNodeGetNext(mHandle, vTreeItem); end; finally VirtualFreeEx(vProcess, vPointer, 0, MEM_RELEASE); CloseHandle(vProcess); mStrings.EndUpdate; end; Result := True;end; { GetTreeViewText }
//Exampleprocedure TForm1.FormCreate(Sender: TObject);begin RegisterHotKey(Handle, 1, MOD_WIN, VK_F2);end;
procedure TForm1.FormDestroy(Sender: TObject);begin UnRegisterHotKey(Handle, 1);end;
procedure TForm1.WMHOTKEY(var Msg: TWMHOTKEY);begin case Msg.HotKey of 1: GetTreeViewText( WindowFromPoint(Point(Mouse.CursorPos.X, Mouse.CursorPos.Y)), MemoText.Lines); end;end;
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script><script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 获取其他程序中TreeView的内容
- 获取其他程序中TreeView的内容
- windows获取其他程序窗口的内容
- 获取其它进程中TreeView控件的内容
- 获取其它进程中TreeView控件的内容
- 跨进程获取其他程序的DBGrid内容
- 跨进程获取其他程序的DBGrid内容
- 跨进程获取其他程序的DBGrid内容
- DELPHI 跨进程获取其他程序的DBGrid内容
- DELPHI 跨进程获取其他程序的DBGrid内容
- 需求:获取其他程序中的ListView控件的文本内容
- 跨进程获取其他程序的DBGrid内容
- 跨进程获取其他程序的DBGrid内容
- DELPHI 跨进程获取其他程序的DBGrid内容
- 获取其他进程中ListBox和ComboBox的内容
- 获取其他进程中“Internet Explorer_TridentCmboBx”的内容
- 获取其他进程中ListBox和ComboBox的内容
- VC获取其他软件控件的内容
- 使用IntraWeb进行Web编程(二)
- 优化全攻略-相关命令
- From Matrix--Agile Software Developing
- 我写的采用csv格式将数据转换为excel的函数,带有分栏
- 优化全攻略-服务器参数调整
- 获取其他程序中TreeView的内容
- 丫头报志愿相关3
- 中国历史上十大无名英雄
- MYSQL的初级使用
- 如何查看数据库每个表占用的磁盘空间
- 获取其他进程中ListBox和ComboBox的内容
- 导入导出方法与工具
- 通用查询组件设计(续二)
- (四)我的毕业设计之好友私聊篇