RickZeeland
В дополнение к Совету Ричарда, вот трюк, который я использовал, чтобы позволить приложению запускаться при запуске:
В вашем приложении проверьте, работает ли оно с правами администратора, если нет, то перезапустите его, запросив права администратора.
На данный момент у меня нет своего исходного кода под рукой, но я опубликую его завтра, если вы этого хотите.
// Program
public static bool IsAdministrator()
{
WindowsIdentity identity = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(identity);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
}
// Form1
private void Form1Shown(object sender, EventArgs e)
{
this.Cursor = Cursors.WaitCursor;
this.Run1();
this.Cursor = Cursors.Default;
}
private void Run1()
{
if (!Program.IsAdministrator())
{
// Restart and run as admin
var exeName = Process.GetCurrentProcess().MainModule.FileName;
ProcessStartInfo startInfo = new ProcessStartInfo(exeName);
startInfo.Verb = "runas";
startInfo.Arguments = "restart";
Process.Start(startInfo);
Application.Exit();
}
}