Сделал так работает на моем компьютере.
Как это сделать что бы удобнее было, запускать процесс с правами администратора на других компьютерах где имена пользователей другие и пароли другие? С минимальным количеством всяких вопросов пользователю?
var pass = new SecureString();
pass.AppendChar('1');
pass.AppendChar('2');
pass.AppendChar('3');
pass.AppendChar('4');
pass.AppendChar('5');
pass.AppendChar('6');
pass.AppendChar('7');
var psi = new ProcessStartInfo
{
FileName =@"C:\WINDOWS\notepad.exe",
UserName = "Sergey",
Domain = "",
Password = pass,
UseShellExecute = false,
RedirectStandardOutput = false,
RedirectStandardError = false,
Verb = "runas"
};
try
{
Process.Start(psi);
}
catch (Exception er)
{
MessageBox.Show(er.ToString());
}
Добавлено через 9 минут и 50 секунд:Думаю нужен такой алгоритм, поправьте если что
1)проверить текущего пользователи является ли он администратором.
2)если не администратор предложить войти под администратором.
3)если администратор как-то получить пароль и ввести его в var pass = new SecureString();
4)Получить имя пользователя и ввести его UserName =
3,4 пункты наверно будет сложно сделать?
Добавлено через 1 час, 21 минуту и 56 секунд:Или достаточно указать
Verb = "runas" Чтобы программа запускалась от имени администратора?