Здравствуйте 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() я опустил -- проверки на ошибки. ;)
А вот обратное как раз и затруднительно...