Получение событий, что "чужие" окна создаются, закрываются
От: Аноним  
Дата: 31.07.13 22:19
Оценка: :))
Нужно в .NET приложении делать некоторые вещи при создании/закрытии "чужих" окон. Должно работать на основных версиях Windows — от XP и выше

Из дот нета напрямую нельзя устанавливать глобальные хуки для получения соответсвующих событий, нужно выносить эти вызовы в стороние неуправляемые библиотеки.
Я попробовал использовать "GlobalCbtHook.dll" из демо-проекта на codeproject:
http://www.codeproject.com/Articles/18638/Using-Window-Messages-to-Implement-Global-System-H (Using Window Messages to Implement Global System Hooks in C#)
На XP работает, но на Win8 уже нет. Разбираться с "с-кодом" большого желания нет, хотелось бы уложиться в рамки управляемого кода.


Где то на одном форуме вычитал что для этого можно использовать WMI, подобно этому посту:
http://weblogs.asp.net/whaggard/archive/2006/02/11/438006.aspx (Using WMI to monitor process creation, deletion and modification in .NET)
Но здесь можно наблюдать за создание процессов, а мне нужны окна. Может быть даже получится обойтись лишь родительскими, те что в менеджере задач как приложения определяются. Можно ли их из процессов отфильтровать?

Может быть есть другие способы?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.