Re[5]: Окна, процессы, потоки...
От: server_mouse Беларусь  
Дата: 12.09.02 05:57
Оценка:
Здравствуйте GarryFV, Вы писали:
GFV>P.S. А все-таки нет другого способа имея HWND напрямую узнать какому exe это окно принадлежит?

Это то как раз и можно!
HANDLE hProcess;
HMODULE hModule;
DWORD PID; //Process ID.
HWND hwnd; 

TCHAR sBuf[MAX_PATH];
TCHAR *sExe;
DWORD nModuleSizeNeed;

//Как-то определяем HWND, Например hwnd=::FindWindow(MY_WINDOW_CLASS,NULL);
GetWindowThreadProcessId(hwnd,&PID);
hProcess=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,false,PID);
EnumProcessModules(hProcess,&hModule,sizeof(HMODULE), &nModuleSizeNeed);
if(GetModuleFileNameEx(hProcess,hModule,sBuf,sizeof(sBuf)))
{
   sExe = _tcsrchr(sBuf, _T('\\'));
   if(sExe==NULL) sExe = sBuf;
   else sExe++;
}
//В sEXE лежит имя *.exe.
//Целую кучу if() я опустил -- проверки на ошибки.  ;)


А вот обратное как раз и затруднительно...
Если человек программист, то это надолго.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.