Visual Studio не перезапускает себя с правами администратора, он просто определяет, работает ли он с правами администратора или нет, и, если нет, выдает окно сообщения. Самым простым тестом для вас будет вызов IsInRole
- даже если вы находитесь в группе администраторов, если приложение работает без повышенных прав, оно возвращает false. Например:
WindowsIdentity wi = WindowsIdentity.GetCurrent();
WindowsPrincipal wp = new WindowsPrincipal(wi);
if (wp.IsInRole("Administrators"))
{
MessageBox.Show("Yes, you are an Administrator.", "Is Administrator?", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("No, you are not an Administrator.", "Is Administrator?", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Вместо этих окон сообщений вы можете добавить свои собственные слова «пожалуйста, закройте и перезапустите меня». Или, если вы хотите похвастаться, дайте им кнопку для щелчка, которая запустит экземпляр с повышенными правами (используя ProcessStart и runas) и закроет этот.