MasterAlexei
Гость
|
|
« Ответ #1 : 10-11-2004 14:30 » |
|
Не у всякого процесса есть окно!!! Ну и у всякого окна есть процесс.
В этом нарпавлении надо копать. Все взято из Platform SDK:
HANDLE SnapSschot = CreateToolhelp32Snapshot( TH32CS_SNAPTHREAD, ProcessID );
Перечисляем все потоки процесса:
THREADENTRY32 te; BOOL WINAPI Thread32First( SnapSschot, &te );
BOOL WINAPI Thread32Next( SnapSschot, &te );
и получаем следующие данные:
GUITHREADINFO gui BOOL WINAPI GetGUIThreadInfo( te.th32ThreadID, &gui );
typedef struct tagGUITHREADINFO { DWORD cbSize; DWORD flags; HWND hwndActive; HWND hwndFocus; HWND hwndCapture; HWND hwndMenuOwner; HWND hwndMoveSize; HWND hwndCaret; RECT rcCaret; } GUITHREADINFO, *LPGUITHREADINFO;
и в обратную сторону
GetWindowThreadProcessId The GetWindowThreadProcessId function retrieves the identifier of the thread that created the specified window and, optionally, the identifier of the process that created the window.
DWORD GetWindowThreadProcessId( HWND hWnd, // handle to window LPDWORD lpdwProcessId // address of variable for process identifier );
|