private static IEnumerable <ScheduledTaskXmlModel> GetInstallerScheduledTasks(DirectoryInfo installDirectory) { DirectoryInfo directoryInfo = new DirectoryInfo(installDirectory + "\\Config"); foreach (FileInfo file in directoryInfo.EnumerateFiles("*.xml", SearchOption.TopDirectoryOnly).Where(f => !f.Name.StartsWith("Monet", StringComparison.CurrentCulture))) { if (TryGetScheduledTaskXDocument(file, out XDocument xDoc)) { ScheduledTaskXmlModel scheduledTask = new ScheduledTaskXmlModel(file); XNamespace xNs = xDoc.Root.GetDefaultNamespace(); //Not every file has a URI specified :( XElement uri = xDoc.Root.Element(xNs + "RegistrationInfo").Element(xNs + "URI"); if (uri != null) { scheduledTask.Uri = uri.Value; } scheduledTask.Description = xDoc.Root.Element(xNs + "RegistrationInfo").Element(xNs + "Description").Value; scheduledTask.Enabled = bool.Parse(xDoc.Root.Element(xNs + "Settings").Element(xNs + "Enabled").Value); string command = xDoc.Root.Element(xNs + "Actions").Element(xNs + "Exec").Element(xNs + "Command").Value; string arguments = xDoc.Root.Element(xNs + "Actions").Element(xNs + "Exec").Element(xNs + "Arguments").Value; scheduledTask.Command = $"{command} {arguments}"; StaticViewModel.AddDebugMessage($"Found scheduled task {uri} in {file.FullName}"); yield return(scheduledTask); } } }
public static void SetScheduledTaskStatusAndUnhide(ScheduledTaskXmlModel scheduledTaskToUpdate) { if (scheduledTaskToUpdate == null) { throw new ArgumentNullException(nameof(scheduledTaskToUpdate)); } if (!TryGetScheduledTaskXDocument(scheduledTaskToUpdate.GetFile(), out XDocument xDoc)) { throw new IOException(); } XNamespace xNs = xDoc.Root.GetDefaultNamespace(); xDoc.Root.Element(xNs + "Settings").Element(xNs + "Enabled").Value = scheduledTaskToUpdate.Enabled.ToString(); xDoc.Root.Element(xNs + "Settings").Element(xNs + "Hidden").Value = bool.FalseString; xDoc.Save(scheduledTaskToUpdate.GetFile().FullName, SaveOptions.None); }
public static void UnhideAndDisableScheduledTask(ScheduledTaskXmlModel scheduledTaskToRemove) { if (scheduledTaskToRemove == null) { throw new NullReferenceException(); } if (!TryGetScheduledTaskXDocument(scheduledTaskToRemove.File, out XDocument xDoc)) { throw new IOException(); } XNamespace xNs = xDoc.Root.GetDefaultNamespace(); xDoc.Root.Element(xNs + "Settings").Element(xNs + "Enabled").Value = bool.FalseString; xDoc.Root.Element(xNs + "Settings").Element(xNs + "Hidden").Value = bool.FalseString; xDoc.Save(scheduledTaskToRemove.File.FullName, SaveOptions.None); }