![]() |
fremde Treeview auslesen?
moin,
Möchte eine freme treeview auslesen. (z.B vom explorer) Wie stelle ich das an?? |
Re: fremde Treeview auslesen?
Liste der Anhänge anzeigen (Anzahl: 1)
Siehe Anlage zum Auslesen einer TreeView und ListView unter Win9x/NT
// fuer einen TreeView
Delphi-Quellcode:
uses
uProcessMemMgr; function TForm1.GrabTreeView(TreeView: TTreeView; extWnd: HWND): Integer; const MaxTextSize = 1024; var TreeWnd: HWND; MM: TProcessMemMgr; CurrentItem: HTREEITEM; TVItem: TTVItem; PrTVItem: PTVItem; PrText: PChar; procedure AddNodes(TreeView: TTreeView; hTree: HWND; ASrc: HTREEITEM; ADst: TTreeNode); var NextDst: TTreeNode; NextSrc: HTREEITEM; begin if not Assigned(ASrc) then Exit; TVItem.hItem := ASrc; TVItem.mask := TVIF_TEXT or TVIF_IMAGE or TVIF_PARAM; MM.Write(TVItem, PrTVItem, SizeOf(TTVItem)); {Get Next TreeView Item} TreeView_GetItem(TreeWnd, PrTVItem^); {Add to our TreeView } NextDst := TreeView.Items.AddChild(ADst, MM.ReadStr(PrText)); {Get Next TreeView Item} NextSrc := TreeView_GetChild(hTree, ASrc); while Assigned(NextSrc) do begin AddNodes(TreeView, hTree, NextSrc, NextDst); NextSrc := TreeView_GetNextItem(hTree, NextSrc, TVGN_NEXT); end; end; begin TreeWnd := extWnd; if TreeWnd = 0 then raise Exception.Create('Handle not found...'); try MM := CreateProcessMemMgrForWnd(TreeWnd); PrTVItem := MM.AllocMem(SizeOf(TTVItem)); PrText := MM.AllocMem(MaxTextSize); TVItem.mask := TVIF_TEXT; TVItem.pszText := PrText; TVItem.cchTextMax := MaxTextSize; CurrentItem := TreeView_GetRoot(TreeWnd); repeat AddNodes(TreeView, TreeWnd, CurrentItem, nil); CurrentItem := TreeView_GetNextItem(TreeWnd, CurrentItem, TVGN_NEXT); until CurrentItem = nil; finally MM.Free; end; if TreeView.Items.Count > 0 then TreeView.Items[0].Expand(Boolean(True)); Result := TreeView_GetVisibleCount(extWnd); end; |
AW: fremde Treeview auslesen?
Nach 10 Jahren grabe ich den Thread mal wieder aus der Versenkung...
Gibt es noch eine Möglichkeit, bei Systemen nach WIN9x den TreeView auszulesen? Das Tool liest bei WIN 7 keine ListView aus :( Die Suchfunktion liefert mir leider keine Ergebnisse :( |
AW: fremde Treeview auslesen?
Das kann ich nicht nachvollziehen, bei mir funktioniert das Tool unter Windows 7 und 8.1 problemlos (kompiliert mit Delphi XE8).
Das Problem ist vermutlich eher, dass du entweder nicht F12 drückst im Zielprogramm, die Maus nicht auf der Listview hast oder dass das Zielprogramm gar keine Listview enthält. Ein beliebtes Beispiel ist dafür der Windows Explorer, der früher eine normale Listview war, heute aber nicht mehr. |
AW: fremde Treeview auslesen?
Zitat:
Hätte vorher mal alle Tasten drücken sollen Gruß Torsten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz