2017-01-20 2 views
-1

Что не так в следующем коде?ProcessStartInfo Verb runas не работает

 ProcessStartInfo startInfo = default(ProcessStartInfo); 

     startInfo = new ProcessStartInfo(SetupProgramPath) 
     { 
      UseShellExecute = true, 
      Verb = "runas", 
      WindowStyle = ProcessWindowStyle.Normal, 
      CreateNoWindow = false 
     }; 

     Process.Start(startInfo); 

Ожидается, что в нем будут указаны учетные данные, но ничего не появится. Система имеет UAC включен и не должна быть изменена. Я ценю вашу помощь в этом. Заранее спасибо.

+1

Что точка присвоения '= default (ProcessStartInfo);' когда вы перезаписываете его на следующей строке? ' – spender

+0

Это не похоже на проблему. Я также могу удалить его. – Sunder

+0

Запускает ли программа? – TheLethalCoder

ответ

0

Я работал на это с помощью следующего кода

ProcessStartInfo startInfo = default(ProcessStartInfo); 

startInfo = new ProcessStartInfo(SetupProgramPath) 
{ 
    UseShellExecute = true, 
    Verb = "runas", 
    WindowStyle = ProcessWindowStyle.Normal, 
    FileName = "msiexec", 
    Arguments = "/i \"" + SetupProgramPath + "\"", 
    CreateNoWindow = false 
}; 

Process.Start(startInfo); 
0

Если вы хотите, чтобы попросить пользователя ввести учетные данные другого пользователя, а затем использовать «RunAsUser»:

ProcessStartInfo startInfo = new ProcessStartInfo(SetupProgramPath) 
{ 
    UseShellExecute = true, 
    Verb = "runasuser", 
    WindowStyle = ProcessWindowStyle.Normal, 
    CreateNoWindow = false 
}; 

Process.Start(startInfo); 
+0

Они пытаются работать как администратор, а не пользователь – TheLethalCoder

+0

Спасибо за помощь. К сожалению, это не сработало. Он не запрашивал учетные данные и не запускал программу установки. Моя программа установки находится в сети – Sunder

+0

Я полагаю, что значение «SetupProgramPath» неверно. Просто попробуйте сначала использовать локальное приложение, например «calc.exe». Затем попробуйте использовать путь к вашему установочному приложению в виде строкового литерала. Если это сработает, попробуйте исправить код, который заполняет «SetupProgramPath» – NineBerry

Смежные вопросы