Хорошо, я провел дневные исследования, и мне не повезло найти ответ на этот вопрос. Я пытаюсь предотвратить запуск приложения через какое-то dll или фоновое приложение. Он должен использоваться для мониторинга использования приложений и лицензий в моем учреждении. Я нашел здесь информацию о WqlEventQuery, а также FileSystemWatcher. Ни одно из этих решений не работает для меня, потому что:
С WqlEventQuery я смог обработать событие только после того, как процесс был создан. Используя блокнот в качестве теста, блокнот был виден и доступен мне до того, как моя логика закрыла его. Я попытался приостановить / возобновить поток (я знаю, что это небезопасно, но я тестировал / играл), но это просто повесило окно, пока моя логика не закончилась.
С FileSystemWatcher я не смог получить никаких событий от запуска .exe, только создания, переименования и удаления файлов.
Цель в том, чтобы вообще не запускать приложение, если моя логика не позволяет ему запускаться. Это возможно? Следующее лучшее решение, которое я придумала, - это принудительный модальный диалог, который не позволяет пользователю взаимодействовать с чем-либо, после закрытия диалога приложение убивается. Моя задача здесь - красиво убить приложение и обрабатывать приложения с большими накладными расходами, когда они загружаются, такие как Photoshop или что-то в этом роде. Это также помешало бы функции, которую я надеялся иметь, где пользователь мог бы войти в очередь, пока не будет доступна лицензия. Это мой лучший маршрут? Любые другие предложения?
Спасибо
редактировать: чтобы уточнить, это не вирус или что-либо вредоносное. Речь не идет о запрете доступа к черному списку или разрешении доступа через белый список. Идея состоит в том, чтобы проверять базу данных в каждом конкретном случае для определенных приложений и видеть, есть ли лицензия для использования. Если есть, дайте приложению запуститься, если не отобразите диалоговое окно, сообщающее пользователю. Мы также будем использовать это для мониторинга и отслеживания, если у нас будет достаточно лицензий для удовлетворения спроса и т. Д. Примером одного из этих приложений является SPSS, у которого очень дорогие лицензии, но очень ограниченный круг людей, использующих его.