У меня есть приложение Winform со следующим кодом в Program.cs
, чтобы убедиться, что мое приложение всегда работает с административными привилегиями:Всегда запускать VS2015 отладки с повышенными привилегиями
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
// Init visual styles
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// Check if app is launched with administrative privilage
WindowsPrincipal principal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
bool administrativeMode = principal.IsInRole(WindowsBuiltInRole.Administrator);
// Check if application is already running
bool mutexCheck;
var mutex = new Mutex(true, Assembly.GetExecutingAssembly().GetType().GUID.ToString(), out mutexCheck);
if (!mutexCheck)
{
// Error
Utils.ShowError("Program is already running.");
return;
}
// If app is running without administrative privilage
if (!administrativeMode)
{
// Request administrative privilage
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.Verb = "runas";
startInfo.FileName = Application.ExecutablePath;
try
{
// Run app as administrator
Process.Start(startInfo);
}
catch (Exception ex)
{
// Error
Utils.ShowError("Program failed to start - " + ex.Message);
return;
}
}
return;
// Launch application
Application.Run(new MyApp());
GC.KeepAlive(mutex);
}
}
Каждый раз, когда я нажимаю F5
, чтобы запустить приложение в режим отладки в Visual Studio 2015, приложение, похоже, работает только - среда отладки не запускается.
Итак, что я должен сделать, это пойти в Debug -> Attach to Process...
и выберите MyApp.exe
, а затем я пробужден с этим окном:
Затем, когда я нажимаю на Restart under different credentials
- VS2015 перезагружается. Затем мне придется закрыть уже запущенный экземпляр MyApp, а затем нажмите F5
для повторного запуска с повышенными привилегиями; когда я это делаю - работает отладка.
Есть ли способ установить мой VS2015, чтобы всегда запускать этот проект с повышенными привилегиями?
Я достиг этого, выполнив шаги, описанные здесь http://stackoverflow.com/a/9654880/2332336 для 'Windows 8 и 8.1' (я нахожусь в Windows 10, и это работает). Теперь я могу просто запустить файл решения проекта, и он автоматически запускает VS2015 с правами администратора :) – Latheesan