Witam.
Rzecz niby banalna - potrzebuję wysłać komunikat do okna innego uruchomionego programu. Więc "książkowo" za pomocą funkcji FindWindowEx() uzyskuję uchwyt tego okna, a następnie ślę mój komunikat procedurą PostMessage(). I wszystko jest ok... o ile wysyłam komunikat do programu uruchomionego pod tym samym kontem użytkownika, ale jeżeli np. chcę z poziomu konta Administratora wyszukać uchwyt okna w procesie innego użytkownika (Windows XP, Windows Server 2003), to funkcja FindWindowEx() nie znajduje tego okna i zwraca "0"
Tak wygląda moja procedura wyszukująca wszystkie okna o podanej nazwie (bo z założenia jest ich więcej niż 1) i zapisująca ich uchwyty w tablicy "okna". Na potrzeby programu zdefiniowałem sobie typ tHandles = array of tHandle;
Natomiast definicja funkcji FindWindowEx wygląda tak:
Zgodnie z opisem dla hwndParent = 0 funkcja wyszukuje okna znajdujące się bezpośrednio na pulpicie, więc może tu gdzieś tkwi haczyk, może wystarczy użyć tu uchwytu pulpitu wybranego użytkownika. Tylko w jaki sposób uzyskać ten uchwyt?
Rzecz niby banalna - potrzebuję wysłać komunikat do okna innego uruchomionego programu. Więc "książkowo" za pomocą funkcji FindWindowEx() uzyskuję uchwyt tego okna, a następnie ślę mój komunikat procedurą PostMessage(). I wszystko jest ok... o ile wysyłam komunikat do programu uruchomionego pod tym samym kontem użytkownika, ale jeżeli np. chcę z poziomu konta Administratora wyszukać uchwyt okna w procesie innego użytkownika (Windows XP, Windows Server 2003), to funkcja FindWindowEx() nie znajduje tego okna i zwraca "0"
Tak wygląda moja procedura wyszukująca wszystkie okna o podanej nazwie (bo z założenia jest ich więcej niż 1) i zapisująca ich uchwyty w tablicy "okna". Na potrzeby programu zdefiniowałem sobie typ tHandles = array of tHandle;
Kod: Delphi
Natomiast definicja funkcji FindWindowEx wygląda tak:
HWND WINAPI FindWindowEx(
__in_opt HWND hwndParent,
__in_opt HWND hwndChildAfter,
__in_opt LPCTSTR lpszClass,
__in_opt LPCTSTR lpszWindow
);Zgodnie z opisem dla hwndParent = 0 funkcja wyszukuje okna znajdujące się bezpośrednio na pulpicie, więc może tu gdzieś tkwi haczyk, może wystarczy użyć tu uchwytu pulpitu wybranego użytkownika. Tylko w jaki sposób uzyskać ten uchwyt?