есть ли способ уведомления, когда программа выполняется или завершается пользователем в С#? Я говорю обо всех программах, которые пользователь может выполнить, а не только о конкретной программе. Я хотел бы получать уведомления, когда пользователь выполняет файлы .exe.
Я даже не думаю о ключевом слове для google.
любые предложения будут оценены!
Ближайшая вещь, о которой я знаю, - это использовать Крюки.
Вы можете использовать WH_SHELL Hooks для получения уведомления в любое время, когда новое, не принадлежащее, верхнее окно окна создается или уничтожается системой, Это не то же самое, что и процесс, но он довольно близок во многих случаях и потенциально более полезен в других (поскольку он откроет окно открытия нового текстового документа после того, как он уже был открыт, хотя они используют общий процесс).
Возможно, вы сможете совместить это с EnumProcess, чтобы проверить, изменился ли список процессов. Это будет работать для отслеживания приложений Windows (но не служб или консольных приложений, запущенных на существующей консоли).
В Microsoft.NET Framework 3.5 вы можете получить список Process
es и зарегистрироваться для события Process.Exited. Я предполагаю, что кто-то может внедрить систему опроса, в которой они постоянно ищут новые Процессы, но это на самом деле не сообщает вам, когда что-то запускается.
- EDIT -
Вы можете найти эту статью. Если вы хотите написать драйвер режима ядра, вы можете управлять каждым процессом и заканчивать его.
Теперь, если вы действительно хотите разобраться, вы можете подключиться к Microsoft Detours. Вот интересная статья об этом.