К сожалению, MSDN с этим недостаточно ясно.Я пишу программу, которая использует глобальную ловушку, и меня беспокоит, что произойдет, если программа завершится ненормально (вылетит, убита пользователем и т. Д.).
Отключает ли Windows автоматически глобальные хуки, установленные процессом, когда процесс завершается?
Если нет, можно ли вызвать UnhookWindowsHookEx () в другом процессе, чтобы освободить ловушку? (Я подумываю сделать это в подключенном потоке, если он обнаружит, что процесс установки мертв.)
Если ответы были «нет», не опасно ли оставлять глобальную ловушку активной, когда процесс установки прекращается? Каковы стандартные методы решения этой ситуации?
Я читал в MSDN, что UnhookWindowsHookEx () не освобождает dll, загруженную в другие процессы, но не сообщает, когда будет освобождена dll. Эта статья в CodeProject , кажется, предполагает, что dll не отображается (в соответствующем процессе), когда первое сообщение прибывает в подключенный поток, так что это примерно сразу после вызова UnhookWindowsHookEx (). Это правда?
Спасибо.