Как заставить мою программу C # Winforms запускаться от имени администратора на любом компьютере? и любая операционная система?
Мне нужно решение кода (любой пример кода будет отличным)
Заранее спасибо
Вы можете встроить этот манифест в свое приложение.
<?xml version="1.0" encoding="utf-8" ?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:assembly>
Вот пример кода для запуска вашего приложения от имени администратора.
ProcessStartInfo proc = new ProcessStartInfo();
proc.UseShellExecute = true;
proc.WorkingDirectory = Environment.CurrentDirectory;
proc.FileName = Application.ExecutablePath;
proc.Verb = "runas";
try
{
Process.Start(proc);
}
catch
{
// The user refused the elevation.
// Do nothing and return directly ...
return;
}
Application.Exit(); // Quit itself
Установите для ProcessStartInfo.Verb значение runas, чтобы запустить его от имени администратора. Вот соответствующий FAQ
Требуется файл манифеста. Просто поместите файл манифеста и выберите AsInvoker или AsAdministrator.
Если у вас есть доступ к процессу, вы можете использовать proc.Verb = "runas";
Проверьте это: http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/db6647a3-85ca-4dc4-b661-fbbd36bd561f