If your WinForm program requires administrator privileges to perform properly, add the following code:
Static classProgram {/// <summary> ///The main entry point for the application. /// </summary>[STAThread]Static voidMain (string[] Args) {//get the currently logged in Windows User logoSystem.Security.Principal.WindowsIdentity identity =System.Security.Principal.WindowsIdentity.GetCurrent (); //Create a Windows user topicApplication.enablevisualstyles (); System.Security.Principal.WindowsPrincipal Principal=NewSystem.Security.Principal.WindowsPrincipal (identity); //determine whether the currently logged on user is an administrator if(Principal. IsInRole (System.Security.Principal.WindowsBuiltInRole.Administrator)) {//If it is an administrator, run it directlyApplication.enablevisualstyles (); Application.setcompatibletextrenderingdefault (false); Application.Run (Newmainform ()); } Else { //To Create a startup objectSystem.Diagnostics.ProcessStartInfo StartInfo =NewSystem.Diagnostics.ProcessStartInfo (); //set up a run fileStartinfo.filename =System.Windows.Forms.Application.ExecutablePath; //Set Startup ParametersStartinfo.arguments = String.Join (" ", Args); //set the start action to ensure that you are running as an administratorStartinfo.verb ="runas"; //if it is not an administrator, start UACSystem.Diagnostics.Process.Start (startinfo); //ExitSystem.Windows.Forms.Application.Exit (); } } }
C # WinForm Program requests Administrator permissions