Как заставить мою программу C # Winforms запускаться от имени администратора на любом компьютере?

Как заставить мою программу C # Winforms запускаться от имени администратора на любом компьютере? и любая операционная система?

Мне нужно решение кода (любой пример кода будет отличным)

Заранее спасибо

32
задан Mehrad 3 October 2014 в 04:11
поделиться

3 ответа

Вы можете встроить этот манифест в свое приложение.

<?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>  
54
ответ дан 27 November 2019 в 20:23
поделиться

Вот пример кода для запуска вашего приложения от имени администратора.

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

http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/28f84724-af3e-4fa1-bd86-b0d1499eaefa#x_FAQAnswer91

12
ответ дан 27 November 2019 в 20:23
поделиться

Требуется файл манифеста. Просто поместите файл манифеста и выберите AsInvoker или AsAdministrator.

Если у вас есть доступ к процессу, вы можете использовать proc.Verb = "runas";

Проверьте это: http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/db6647a3-85ca-4dc4-b661-fbbd36bd561f

1
ответ дан 27 November 2019 в 20:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: