Quantcast
Viewing all articles
Browse latest Browse all 2206

Commented Unassigned: Error registering task on Windows Vista [12469]

On Windows Vista, I can't register a task when a password is required. I'm using the version 2.5.27 of the wrapper.
The next code works on other operative systems, but not in Windows Vista:

TaskDefinition td = taskScheduler.NewTask();
td.Actions.Add(Application.ExecutablePath, string.Format("\"{0}\"", configPath));
td.Settings.DisallowStartIfOnBatteries = false;
td.Settings.StopIfGoingOnBatteries = false;

Task task = taskScheduler.RootFolder.RegisterTaskDefinition(taskName, td);
task.Definition.Principal.LogonType = TaskLogonType.Password;
task.Definition.Principal.RunLevel = TaskRunLevel.Highest;

TaskEditDialog editorForm = new TaskEditDialog(task, true, true);
editorForm.ShowDialog();

When clicking on OK button of the Task Edit Dialog, we are prompted to type password of the account. Even if the password is right, we get the error of the screenshot.
Comments: ** Comment from web user: dahall **

I have fought with this for a number of hours and cannot find a way around how Microsoft is handling this in Win7. In the next release (2.6.2), I have added a property to TaskEditDialog called 'TaskNameIsEditable' that you can set to false to prevent changes to it. New use would be:
```c#
// Create a new task definition and assign properties
TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Description = "Does something";
td.Principal.LogonType = TaskLogonType.Password;

// Create a trigger that will fire the task at this time every other day
td.Triggers.Add(new DailyTrigger { DaysInterval = 2 });

// Create an action that will launch Notepad whenever the trigger fires
td.Actions.Add(new ExecAction("notepad.exe", "c:\test.log", null));

// Call the dialog with the definition only (not a registered task)
TaskEditDialog editForm = new TaskEditDialog(ts, td, true, true) { TaskName = "Test", TaskNameIsEditable = false };
var r = editForm.ShowDialog();
if (r == System.Windows.Forms.DialogResult.Cancel) return;
Task t = editForm.Task;

// If no exception thrown, then log success
output.WriteLine("Success! Task '{0}' created by '{1}' under '{2}'.", t.Name, t.Definition.RegistrationInfo.Author, t.Definition.Principal);

// Delete task
ts.RootFolder.DeleteTask(@"Test");
```


Viewing all articles
Browse latest Browse all 2206

Trending Articles