Запустить программу из программы с именем Администратора - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Есть программа которая выполняется от имени Администратора. В определенный момент из потока BackgroundWorker программу нужно перезапускать так же от имени Администратора. Но тут проблема. Перезапуск программы не работает, т.е. программа работает, но снова не запускается.
System.Windows.Forms.Application.Restart();
Программа запускается, но от имени пользователя, а не Администратора.
Process.Start(name);
Application.Exit();

Решение задачи: «Запустить программу из программы с именем Администратора»

textual
Листинг программы
static void Main()
        {
            WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
            bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator);
 
            if (!hasAdministrativeRight)
            {
                ProcessStartInfo processInfo = new ProcessStartInfo(); //создаем новый процесс
                processInfo.Verb = "runas"; //в данном случае указываем, что процесс должен быть запущен с правами администратора
                processInfo.FileName = Application.ExecutablePath; //указываем исполняемый файл (программу) для запуска
                try
                {
                    Process.Start(processInfo); //пытаемся запустить процесс
                }
                catch (Win32Exception)
                {
                    //Ничего не делаем
                }
                Application.Exit(); //закрываем текущую копию программы (в любом случае, даже если пользователь отменил запуск с правами администратора в окне UAC)
            }
            else //имеем права администратора, значит, стартуем
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Avast());
            //}
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5
Похожие ответы