Как запустить GUI admin ap при входе в Windows

Как запустить GUI admin ap при входе в Windows

Я написал небольшое приложение на языке C#, чтобы контролировать время, которое мой ребенок проводит за игрой на ПК.

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

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

Любой вид чаевых будеточеньоценено по достоинству!

P.S. Если запуск приложений GUI-администратора на рабочем столе другого пользователя невозможен - может быть, кто-нибудь сможет посоветовать, где/как мне сохранить файл журнала, чтобы он был легко доступен (умному) малышу :)

решение1

Правильный способ сделать это — запустить приложение как службу или как другого пользователя, а затем отправить окна на рабочий стол пользователя (ребенка). СмотритеСтраница MSDN об интерактивных сервисах; хотя сервисам больше не разрешено работать в интерактивном режиме, они все еще могут косвенно взаимодействовать с пользователями, включая пользователей, работающих под разными учетными записями.WTSSendMessageФункция может использоваться для отображения окна сообщения в текущем сеансе, или ваш процесс может использоватьCreateProcessAsUser(если у него есть доступ) для создания процесса в сеансе пользователя, с которым можно взаимодействовать (при этом родительский процесс по-прежнему может создавать файлы журналов, которые не могут быть удалены пользователем и т. д.).

EDIT: Процесс не обязательно должен быть запущен как служба, чтобы использовать эти функции. Они полезны для служб, но также и для любого другого процесса, который запущен (неинтерактивно) как другой пользователь.

EDIT 2: Что касается файлов журнала, они могут (и должны) быть настроены с разрешениями «только добавление» для процесса ведения журнала. Таким образом, даже если программа запущена с разрешениями ребенка, она может только добавлять данные в файл (не удалять, не перезаписывать, не обрезать и т. д.). Вы можете открыть файл, запросив только доступ на добавление.

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

Связанный контент