Я использую следующий код в программе, которая не имеет повышенные привилегииНачать процесс «как администратор» не работает
ProcessStartInfo pInfo = new ProcessStartInfo();
pInfo.FileName = fileToExcecute;
pInfo.UseShellExecute = false;
pInfo.RedirectStandardOutput = false;
pInfo.RedirectStandardError = false;
pInfo.CreateNoWindow = true;
if (runAsAdministrator)
pInfo.Verb = "runas";
Process p = Process.Start(pInfo);
Конечный пользователь просят выбрать, хотят ли они, чтобы запустить программу в повышенный режим или нет. Вышеупомянутый, однако, не запускает программу «Как администратор», когда runAsAdministrator имеет значение. Я запустил «fileToExcute» вручную «Как администратор», и он предлагает внести изменения в компьютер.
Затем я добавил манифест в файл «fileToExecute» для запуска с повышенными привилегиями каждый раз и при непосредственном запуске этой программы мне было предложено подтвердить разрешение на внесение изменений в компьютер. Когда я запускаю выше программу, которая использует приведенный выше код, я получаю:
System.ComponentModel.Win32Exception (0x80004005):
The requested operation requires elevation at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start() at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) at
#HLg.#ic.#zNg(String #ANg) in #pOg:line 135
Я действительно хочу, чтобы первый вариант работы. Я пробовал все и не могу понять, почему первый вариант не работает.
спасибо. Я нашел это очень расстраивающим :-( – David