Надо ли снимать хук поставленный на поток?
Если надо, то как посоветуете это сделать? Я пока что додумался до того, что
1. отлавливаем через WH_SHELL открытие необходимого приложения
2. в ShellProc ставим на него хук
3. Сохраняем указатель на хук и HWND окна в массиве структур struct THooks(HHOOK hook; HWND hWnd)
4. отлавливаем через WH_SHELL закрытие необходимого приложения
5. ищем в массиве структур THooks указатель на хук необходимого окна и делаем ему UnHook
Может это как то проще можно сделать?
Цитата: olyx
Надо ли снимать хук поставленный на поток стороннего приложения, либо сей хук сам анхукнится при закрытии соответствующего приложения?
Если надо, то как посоветуете это сделать? Я пока что додумался до того, что
1. отлавливаем через WH_SHELL открытие необходимого приложения
2. в ShellProc ставим на него хук
3. Сохраняем указатель на хук и HWND окна в массиве структур struct THooks(HHOOK hook; HWND hWnd)
4. отлавливаем через WH_SHELL закрытие необходимого приложения
5. ищем в массиве структур THooks указатель на хук необходимого окна и делаем ему UnHook
Может это как то проще можно сделать?
Если надо, то как посоветуете это сделать? Я пока что додумался до того, что
1. отлавливаем через WH_SHELL открытие необходимого приложения
2. в ShellProc ставим на него хук
3. Сохраняем указатель на хук и HWND окна в массиве структур struct THooks(HHOOK hook; HWND hWnd)
4. отлавливаем через WH_SHELL закрытие необходимого приложения
5. ищем в массиве структур THooks указатель на хук необходимого окна и делаем ему UnHook
Может это как то проще можно сделать?
Ничего само по себе не "анхукниться". Возможно ты имеешь ввиду не поток, а процесс?
Тогда нужно отлавливать WM_QUIT и на нём делать UnHook.