Jak znaleŸć uchwyt programu?

0

Czy kto wie jak znaleć uchwyt programu, nie znajšc nazwy jego okna (czyli FindWindow odpada). Może co po nazwie execa?

0

FindWindow nie musi mieć nazwy okna. Wystarczy mu nazwa klasy.
http://4programmers.net/Forum/search.html?q=findwindow&sort=post_time&sort_by=DESC&f=0

Jeśli to też odpada, to możesz przeszukać wszystkie procesy i porównać ścieżkę do programu:
CreateToolhelp32Snapshot
http://4programmers.net/Forum/search.html?q=CreateToolhelp32Snapshot&sort=post_time&sort_by=DESC&f=0&x=33&y=11

0

W MSDN-ie wpisz "HOWTO: Get the Filename Given a Window Handle"
i tutaj masz fajny programik znajdujacy nazwe pliku na podstawie hWnd.
Ofcoz trza go zmodyfikowac i zamiast FindWIndow uzyc EnumWindows
i dla kazdego zwroconego przez nia hWnd odpalac DisplayFilename( dwActiveProcessId );
z tego progsa i patrzyc czy otrzymasz nazwe swojego pliku !!

0

Jemu chodzi o cos odwrotnego, zna nazwe pliku, a nie ma handle do głównego okna

0

Ojej :> ale nadal to co napisalem pasuje do znalezienia hWnd !!!!
Czytaj dokladnie !!!! [diabel] Listujesz wszystkie hWnd (do tego wcale nie potrzebujesz hWnd - EnumWindow !!!!!) pobierasz za pomoca wyzej pokazanej procedury nazwe pliku exe i jesli sie zgadza z szukana nazwa to masz szukane hWnd !!!! [diabel] Proste tylko troszke pomyslec :-8

//primo - napisałem to samo, ale z użyciem innych funkcji
//secundo - oszczędzaj emotki "!!" - zbyt często jej nadużywasz - nie sądzisz, że post traci na czytelności? :-P - m.M

0

A może coś takiego?

function GetWindowHandle(ProcID : integer) : THandle;
var pHandle : THandle;
begin
     Result := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,FALSE, ProcID);
end;

Jeśli nie ma takiego procesu funkcja zwróci 0. Proste i sam to wykombinowałem! :> :p

0

Jeśli nie ma takiego procesu funkcja zwróci 0. Proste i sam to wykombinowałem! :> :p

Świetnie, gratulacje! Tylko czy to ma jakiś związek z problemem...?

1 użytkowników online, w tym zalogowanych: 0, gości: 1