Ejemplo n.º 1
0
 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!");
     }
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 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.");
     }
 }