public static void StartWithAdminModeLaunchTask(string appTaskId = "") { if (appTaskId == null || appTaskId.Length == 0) { string exeName = System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().Location); appTaskId = "Run" + exeName + "InAdminMode"; } if (CheckIfAdminLaunchTaskExist(appTaskId)) { //if (!IsAdminLaunchTaskAlreadyRunning()) { tsEngine.TaskScheduler ts = new tsEngine.TaskScheduler(); ts.Connect(null, null, null, null); if (ts.Connected) { tsEngine.ITaskFolder root = ts.GetFolder("\\"); tsEngine.IRegisteredTask task = root.GetTask(appTaskId); tsEngine.IRunningTask runTask = task.Run(null); } } //else //{ // throw new Exception("The task is already running!"); //} } else { throw new Exception("Admin mode Launch task does not exist yet!"); } }
public static bool CheckIfAdminLaunchTaskExist(string appTaskId = "") { try { if (appTaskId == null || appTaskId.Length == 0) { string exeName = System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().Location); appTaskId = "Run" + exeName + "InAdminMode"; } tsEngine.TaskScheduler ts = new tsEngine.TaskScheduler(); ts.Connect(null, null, null, null); if (ts.Connected) { tsEngine.ITaskFolder root = ts.GetFolder("\\"); tsEngine.IRegisteredTask task = root.GetTask(appTaskId); if (task != null) { return(true); } } } catch { } return(false); }
public static void DeleteAdminLaunchTask(string appTaskId = "") { if (appTaskId == null || appTaskId.Length == 0) { string exeName = System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().Location); appTaskId = "Run" + exeName + "InAdminMode"; } if (IsInAdminMode()) { if (CheckIfAdminLaunchTaskExist(appTaskId)) { tsEngine.TaskScheduler ts = new tsEngine.TaskScheduler(); ts.Connect(null, null, null, null); if (ts.Connected) { tsEngine.ITaskFolder root = ts.GetFolder("\\"); tsEngine.IRegisteredTask task = root.GetTask(appTaskId); if (task != null) { root.DeleteTask(appTaskId, 0); } } } } else { throw new Exception("To delete the admin mode task you must start this program in 'Admin' mode."); } }