Есть hook.dll реализующая SHELL hook. Работала эта DLL без проблем с обычной программой.Отслеживала создание окон и вела лог.
Надо передалать программу в сервис. Все бы ничего, но с хуком ситуация странная.
При создании сервиса он загружается нормально и показывает в логе файле все win-окна. С DOS и консолями (FAR например) проблема. Они переодически не фиксируются хуком — нет их в логе.
Зачечено, если любом месте ServiceMain после создания хука вставить MessageBox (он был для отладки), то пока он на экране — 100% ВСЕ окна идут в лог. После его закрытия — Win окна в лог, а вот DOS и консоль — 50 на 50.
вот исходник: