Я должен передать больше чем один параметр командной строки через c# для процесса под названием handle.exe: http://www.google.com.mt/search?sourceid=chrome&ie=UTF-8&q=handle.exe
Во-первых, я должен выполнить исполняемый файл через ПРАВА АДМИНИСТРАТОРА. Это сообщение помогло мне достигнуть просто что: программно выполните cmd.exe как adminstrator в перспективе, c#
Но затем прибывает, следующая проблема вызова фактических аргументов строки такой как "-p исследует"
Как я могу указать параметры командной строки вместе, или возможно последовательно?
Текущий код следующие:
Process p = new Process();
ProcessStartInfo processStartInfo = new ProcessStartInfo("filePath");
processStartInfo.CreateNoWindow = true;
processStartInfo.UseShellExecute = false;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.RedirectStandardInput = true;
processStartInfo.Verb = "runas";
processStartInfo.Arguments = "/env /user:" + "Administrator" + " cmd";
p.StartInfo = processStartInfo;
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
Console.WriteLine(output);
Спасибо
Вы можете запустить процесс, используя команду UseShellExecute и передайте имя пользователя и пароль
Хотя вы будете где-то хранить имя пользователя и пароль.
Если вы пытаетесь запустить процесс с повышенными разрешениями, может быть лучший способ, чем вызов runas.
Я считаю, что ответ, который вы ищете, прямо взят из документации по командам Runas .
runas /user:user@domain.microsoft.com "notepad my_file.txt"
Похоже, что последний аргумент команды runas - это команда, которая выполняется вместе с любыми аргументами. Ключ состоит в том, чтобы использовать кавычки для группировки фактического исполняемого файла команды с его аргументами, чтобы значения не рассматривались как отдельные аргументы для команды runas, а вместо этого выдавались как отдельная команда.
Итак, в вашем примере вы можете сделать следующее.
processStartInfo.Arguments = "/env /user:" + "Administrator" + " \"cmd -p explore\"";