2013-09-08 1 views
2

Я пытаюсь выяснить, как я могу захватить все оконные сообщения процесса/окна с момента его запуска в C#. Этот процесс не был бы моим собственным, поэтому мне нужно было бы использовать какой-то крючок. Моя цель - начать сбор всех сообщений в реальном времени с момента создания исходного окна, до выхода приложений и вывода всех сообщений в текстовое поле или файл. Таким образом, с самого момента, когда приложение было выполнено.Как я могу захватить все сообщения приложения/окна с начала процесса?

Поскольку я хочу захватить его с момента его запуска, я, вероятно, не буду иметь ручку окна, так как их пока не будет никакой ручкой. Поэтому я считаю, что это может быть сложно.

Это приложение, которое делает это, что я могу использовать для справки? Я хочу, чтобы все сообщения поступали из приложения.

+0

Укажите, что будет считаться «сообщением». –

ответ

1

Моя цель состоит в том, чтобы начать запись всех сообщений в режиме реального времени от до того первоначального создания окна, до выхода и выхода приложений всех сообщений в текстовое поле или файл.

Похоже, вы хотите «мониторинг в реальном времени» из реестра, файловой системы, процесс & и т.д. активность.

Process Monitor делает все это уже и вы можете подключить к нему с помощью EasyHook

Поскольку я хочу захватить его с момента его запуска, я, вероятно, не будет иметь ручку окна, так как их будет еще не ручка. Так что я geussing это может быть сложно.

В статье «Код проекта» есть метод предотвращения выполнения любой программы, которая не отображается в списке программного обеспечения, которое разрешено запускать на конкретной машине. Возможно, вы сможете адаптировать его в соответствии с вашими потребностями. http://www.codeproject.com/Articles/11985/Hooking-the-native-API-and-controlling-process-cre

Если вы хотите подход низкого уровня, я рекомендую прочитать на Hooks and Dlls.

+0

Спасибо Джереми. Статья, с которой вы долго связывались с easyhook, действительно помогла мне. – user1632018

Смежные вопросы