国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

獲取其他程序中TreeView的內容

2019-11-18 18:24:20
字體:
來源:轉載
供稿:網友
(*//標題:獲取其他進程中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;

上一篇:獲取其他進程中ListBox和ComboBox的內容

下一篇:設置ListView的頁眉圖標

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 两当县| 桐城市| 新郑市| 陇川县| 上蔡县| 武穴市| 阿拉善右旗| 普宁市| 天全县| 北京市| 四平市| 罗山县| 邵阳市| 夏河县| 旬阳县| 宜城市| 新蔡县| 新民市| 静宁县| 鹤山市| 济南市| 晋州市| 贵溪市| 洛南县| 宁武县| 石棉县| 塔城市| 循化| 广德县| 贞丰县| 灯塔市| 阜新| 慈溪市| 尚志市| 托里县| 宁国市| 许昌县| 姚安县| 新龙县| 璧山县| 保靖县|