¿Cómo forzar a que mi progtwig C # Winforms se ejecute como administrador en cualquier computadora?

¿Cómo forzar a que mi progtwig C # Winforms se ejecute como administrador en cualquier computadora? y cualquier tipo de sistema operativo?

Necesito una solución de código (cualquier código de muestra será excelente)

Gracias por adelantado

Puede insertar este manifiesto en su aplicación.

           

Aquí está el código de muestra para ejecutar su aplicación como administrador.

 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 

Establezca ProcessStartInfo.Verb en “runas” para que se ejecute como administrador. Aquí hay preguntas frecuentes relacionadas

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

La respuesta obvia es agregar un archivo de manifiesto al proyecto de C # y agregar la siguiente línea:

  

Pero, también se puede tomar un enfoque poco ortodoxo. Sabemos que el acceso al registro requiere privilegios de administrador. Por lo tanto, si tiene una función que contiene un acceso de escritura de registro, la función arrojará una System.Security.SecurityException si no ejecuta el progtwig como administrador. Se implica que debe llamar a esta función al comienzo del progtwig. Si se lanza esta excepción, puede informar al usuario que ejecute el progtwig como administrador y cierre el progtwig.

 public void enforceAdminPrivilegesWorkaround() { RegistryKey rk; string registryPath = @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\"; try { if(Environment.Is64BitOperatingSystem) { rk = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64); } else { rk = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry32); } rk = rk.OpenSubKey(registryPath, true); } catch(System.Security.SecurityException ex) { MessageBox.Show("Please run as administrator"); System.Environment.Exit(1); } catch(Exception e) { MessageBox.Show(e.Message); } } 

Aquí, el true en la línea rk = rk.OpenSubKey(registryPath, true) le dice al progtwig que necesita acceso de escritura al registro.

Necesita el archivo Manifest. Simplemente coloque un archivo de manifiesto y elija AsInvoker o AsAdministrator.

Si puede acceder al proceso, puede usar proc.Verb = “runas”;

Verifique esto: http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/db6647a3-85ca-4dc4-b661-fbbd36bd561f