To start any application by code, it pretty easy:
static void Main(string[] args) { var pi = new ProcessStartInfo { FileName = "calc", //Arguments = "...", //RedirectStandardOutput = true, UseShellExecute = false //Allows the redirection of the ouput }; var p = Process.Start(pi); }
But in that simple case, we could just do:
static void Main(string[] args) { var p = Process.Start("calc"); }
Sometimes you will need to start an application as the current user, but as the admin as well:
public static void StartApp(string appPath, string parameter, PrivilegeEnum privilege) { var psi = new ProcessStartInfo(appPath, parameter); switch (privilege) { case PrivilegeEnum.Admin: psi.UseShellExecute = true; psi.Verb = "runas"; break; case PrivilegeEnum.CurrentUser: //psi.UserName = System.Security.Principal.WindowsIdentity.GetCurrent().Name; psi.LoadUserProfile = true; psi.UseShellExecute = false; break; default: break; } var p = new Process(); p.StartInfo = psi; p.Start(); } public enum PrivilegeEnum { Admin, CurrentUser }