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

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

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

Любой совет будет очень признателен!

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

1 ответ1

1

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

РЕДАКТИРОВАТЬ: процесс не должен быть запущен как сервис, чтобы использовать эти функции. Они полезны для служб, но также для любого другого процесса, который запускается (не в интерактивном режиме) от имени другого пользователя.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .