Zitat von
Die Muhkuh:
Da werde ich wohl erst noch runterscrollen müssen.
[edit] Nach dem Scrollen funktioniert es wieder 1a. Danke vielmals
[/edit]
Hi,
du könntest auch das gesuchte Item als
TopItem setzen, dann kurz warten und erst danach die Position des Items abfragen. Um das Item als
TopItem zu setzen könntest du den Code so abändern:
Delphi-Quellcode:
...
and ReadProcessMemory(hProc, Pointer(Cardinal(MemR)+ SizeOf(TTvItem)), Pointer(Cardinal(MemL)+ SizeOf(TTvItem)), SizeOf(TRect), BytesR) then
begin
ItemRect:= PRect(Cardinal(MemL)+ SizeOf(TTvItem))^;
if PChar(Cardinal(MemL) + SizeOf(TTVItem)+ SizeOf(TRect))= 'Arbeitsplatz' then
begin
SendMessage(hTree, TVM_SELECTITEM, TVGN_FIRSTVISIBLE, Cardinal(hItem));//als TopItem setzen
(*windows.GetWindowRect(hTree, TreeRect);
SetCursorPos(TreeRect.Left+ (ItemRect.Right+ ItemRect.Left) div 2,TreeRect.Top+ (ItemRect.Bottom+ ItemRect.Top) div 2);
mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0); *)
end;
...
Damit wird praktisch automatisch auf die richtige Position gescrollt. Getestet mit dem Windows Explorer unter Windows XP.