2009-02-27 2 views
0

Мне нужна моя программа winform для запуска в качестве другого пользователя (она будет запускаться под планировщиком задач), а не вошедшего в систему пользователя. Я подозреваю, что проблема в том, что мое приложение основано на gui, а не на командной строке (это имеет значение), поэтому gui нужно загрузить, чтобы сделать свою работу, а затем закрыть. Возможно ли это под XP или Vista?C# Запуск программы winform как кто-то, кроме зарегистрированного пользователя

Благодаря

ответ

5

Запланированные задачи могут быть «работать как» конкретного пользователя, которая может отличаться от вошедшего в систему пользователя.

Вы можете указать этого пользователя при создании задачи или отредактировать свойства существующей задачи.

1

Если ваше приложение должно запускаться как задание, то оно не может иметь пользовательский интерфейс. Как минимум, он действительно должен быть запущен через командную строку.

Наилучший подход заключается в том, чтобы отделить пользовательский интерфейс от фактической обработки, чтобы вы все равно могли выполнять его интерактивно, если это необходимо. Это также упростит тестирование вашего приложения.

EDIT: Отредактированный для набора текста и смысла

0

Я бы голосовать за первый вариант, или предоставить дополнительную возможность: Используйте олицетворение в вашем коде. Хотя это может быть излишним/не соответствует вашим потребностям.

0

Другим способом, которым вы могли бы выполнить программу, является программное изменение пользователя на основе файла конфигурации или даже соединения с БД. Один образец проекта по проекту Кода:

http://www.codeproject.com/KB/cs/runas.aspx

Надеется, что это помогает.

0

Вы ищете метод Process.Start. Одна из перегрузок принимает пару имени пользователя/пароля. Процесс будет создан с использованием этих учетных данных пользователя.

var app = Process.Start(@"c:\path\to\some\app.exe", userName, password, domainOrEmptyString);