Запуск программы с правами администратора в C#
Как я недавно узнал, трудно запустить процесс Java с правами администратора из кода, поэтому я решил создать отдельную запускающую или вызывающую программу, написанную на C#. Программа на C# имеет права на запуск от имени администратора, но как мне вызвать jar для запуска как единое целое? Для вызываемой программы требуются права администратора для установки и получения значений из реестра, которые являются его настройками, и, поскольку я не могу запустить программу как администратор в Java, мне нужно сделать это в C# (я выбрал C# вместо VB, потому что я использовал для кодирования на VB, но синтаксис мне больше не нравится). Вот как далеко я дошел, но я все равно получаю сообщение об ошибке в консоли:
static void Main(string[] args)
{
Console.Title = "Universal Android Toolkit Bootup...";
Console.ForegroundColor = ConsoleColor.Green;
try
{
Process pr = new Process();
String uat = Environment.CurrentDirectory + "/com.m4gkbeatz.Java.AndroidToolkit.jar";
pr.StartInfo.Arguments = "-jar " + uat;
pr.StartInfo.FileName = "java";
pr.StartInfo.CreateNoWindow = true;
pr.StartInfo.ErrorDialog = true;
pr.StartInfo.RedirectStandardOutput = true;
pr.StartInfo.RedirectStandardError = true;
pr.StartInfo.UserName = "admin";
pr.StartInfo.UseShellExecute = false;
StreamReader str;
pr.Start();
str = pr.StandardOutput;
while (!pr.HasExited)
{
Console.WriteLine(str.ReadLine());
}
}
catch (Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("There was an error while attempting to execute Universal Android Toolkit");
Console.WriteLine(ex.ToString());
error = ex.ToString();
Console.WriteLine("\n");
Console.WriteLine("Please try again.\nPress ENTER to continue...");
Console.Read();
ErrorMenu();
}
}
Редактировать: это вывод консоли:
1 ответ
Как ошибка указывает "неверное имя пользователя / пароль"... вы устанавливаете pr.StartInfo.UserName
но нет pr.StartInfo.Password