Запуск приложения от имени администратора - C#
Формулировка задачи:
Здравствуйте! На форуме нашла код, который будет запускать приложение от имени администратора. Пробую запустить - ругается на Application, говорит, не существует в текущем контексте. Вот код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Security.Principal;
using System.Windows;
namespace WindowsApplication1
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator);
if (hasAdministrativeRight == false)
{
ProcessStartInfo processInfo = new ProcessStartInfo(); //создаем новый процесс
processInfo.Verb = "runas"; //в данном случае указываем, что процесс должен быть запущен с правами администратора
processInfo.FileName = Application.ExecutablePath; //указываем исполняемый файл (программу) для запуска
try
{
Process.Start(processInfo); //пытаемся запустить процесс
}
catch (Win32Exception)
{
//Ничего не делаем, потому что пользователь, возможно, нажал кнопку "Нет" в ответ на вопрос о запуске программы в окне предупреждения UAC (для Windows 7)
}
Application.Exit(); //закрываем текущую копию программы (в любом случае, даже если пользователь отменил запуск с правами администратора в окне UAC)
}
else //имеем права администратора, значит, стартуем
{
//код
}
}
}
}Решение задачи: «Запуск приложения от имени администратора»
textual
Листинг программы
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />