Как получить уведомление о выполнении и завершении программы в c #?

2

есть ли способ уведомления, когда программа выполняется или завершается пользователем в С#? Я говорю обо всех программах, которые пользователь может выполнить, а не только о конкретной программе. Я хотел бы получать уведомления, когда пользователь выполняет файлы .exe.

Я даже не думаю о ключевом слове для google.

любые предложения будут оценены!

Теги:
notifications

2 ответа

3
Лучший ответ

Ближайшая вещь, о которой я знаю, - это использовать Крюки.

Вы можете использовать WH_SHELL Hooks для получения уведомления в любое время, когда новое, не принадлежащее, верхнее окно окна создается или уничтожается системой, Это не то же самое, что и процесс, но он довольно близок во многих случаях и потенциально более полезен в других (поскольку он откроет окно открытия нового текстового документа после того, как он уже был открыт, хотя они используют общий процесс).

Возможно, вы сможете совместить это с EnumProcess, чтобы проверить, изменился ли список процессов. Это будет работать для отслеживания приложений Windows (но не служб или консольных приложений, запущенных на существующей консоли).

  • 0
    на самом деле, это именно то, что я искал. Спасибо!
3

В Microsoft.NET Framework 3.5 вы можете получить список Process es и зарегистрироваться для события Process.Exited. Я предполагаю, что кто-то может внедрить систему опроса, в которой они постоянно ищут новые Процессы, но это на самом деле не сообщает вам, когда что-то запускается.

- EDIT -

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

Теперь, если вы действительно хотите разобраться, вы можете подключиться к Microsoft Detours. Вот интересная статья об этом.

  • 0
    -1: Это не сильно помогает в получении уведомлений при выполнении процесса.
  • 0
    Надеюсь, редактирование вас не оскорбит. :)
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню