Задача широко распространена, но я не удовлетворен найденными мною решениями.
Программа должна работать в фоновом режиме, регулярно сканировать систему на предмет изменения состояния и, при некоторых условиях, показывать всплывающие окна с уведомлениями для пользователей. Программа работает под управлением Windows 7.
Есть два нюанса. Первый, ему необходимы повышенные привилегии (самый высокий уровень, запуск от имени администратора, в Windows есть путаница с терминологией) для сканирования некоторой защищенной системной информации. Во-вторых, он должен работать для всех пользователей с правами администратора.
Вот список типичных решений и причин, по которым они не подходят.
Задача выглядит очень обычной, но решения сложны. Я что-то неправильно понимаю? Есть ли способы попроще?
PS: Я ' я видел эту тему Процесс с правами администратора запускается при входе пользователя в систему , но интересно, есть ли менее сложные способы.
ОБНОВЛЕНИЕ
Я обнаружил, что решения со службами Windows также не работают для моего задача. Мне нужен доступ к хранилищу личных сертификатов пользователя. Служба работает под одной учетной записью и требует доступа к сертификатам другой. Я не нашел, как это сделать с помощью API криптографии .Net, и думаю, это невозможно из-за политики безопасности. I posted the solution I finally came up with as the answer to this question.