Есть малюсенький проект (на Delphi 5): перехват нажатий клавиш в Windows. Проект состоит из 1 exeшника и 1 dll. Из dll ставится глобальный хук на нажатия клавиш. В приложении в текстовом поле отображаются клавиши, нажатые в любом другом приложении. Всё это прекрасно работает в Windows XP, но когда этот проект запускаешь в Висте, то есть одна проблема. В принципе в Висте тоже всё работает, до тех пор пока не запустишь Internet Explorer 7. После этого хук слетает и никакие нажатия клавиш уже не перехватываются.
В общем цель стоит следующая: доработать проект, чтобы в Висте в IE7 тоже всё перехватывалось.
Прилагаю архив с проектом. Там 2 проекта, один для dll, другой для исполняемого файла.
Запускаете Project1.exe (в Висте), нажимаете кнопку Set Hook, затем запускаете любое другое приложение, например Блокнот, что-нибудь там печатаете, и в текстовом поле в Project1 отображаются все набранные символы. Затем запускаете IE7, что-нибудь печатаете и бац, в текстовом поле ничего не отображается, и теперь хоть в блокноте, хоть где можно нажимать клавиши и мой проект ничего не перехватит. Вот нужно это исправить.
Вроде как данную проблему обсуждали на форуме Microsoft и предложили решение, вот ссылка:
Проблема точь в точь, как у меня, но в Cи я не шарю, поэтому если сможете перевести это решение на Delphi применительно к моему проекту, то замечательно.