2016-05-05 6 views
0

In meiner C# -Anwendung verwende ich ITask Taskplaner-Schnittstelle, um den Task in Taskplaner zu erstellen. Ich kann die Aufgabe erstellen, aber ich habe Probleme beim Zuweisen des Anwendungsnamens. Jedes Mal, wenn ich eine Aufgabe erstelle "Starten Sie ein Programm" (Anwendungsname) ist nicht in Anführungszeichen eingeschlossen, auch wenn ich die Anführungszeichen aus Code anfügen und Anwendungsname mit Methode nicht funktioniert.ITask :: SetApplicationName Anwendungsname mit Speicherplatzproblem

Das eigentliche Problem entsteht, wenn ich versuche, den Task von Taskplaner zu bearbeiten. Der tatsächliche Pfad und die Argumente sind durcheinander (siehe Bild). "G: \ Name WithSpace \ Build \ Some.exe" das ist mein tatsächlicher Anwendungsname.

enter image description here

Hinweis: Wenn ich von MS-Taskplaner gleichen erstellen anhängt es mit doppelten Anführungszeichen.

+0

verwenden, um anbei erhalten Sie die Anführungszeichen in der ursprünglichen Zeichenfolge zu entkommen? Der MS-Code analysiert Ihre Befehlszeile zu einer vernünftigen Erwartung von "C: \ App Args". Haben Sie versucht "\" C: \ App Args \ "? –

+0

@KenBrittain, Ja versuchte das auch, aber keine Verwendung. Sobald der Wert an die ITask :: SetApplicationName() -Methode übergeben wurde, wird er ohne die Anführungszeichen zugewiesen. – Davy

Antwort

0

viele verschiedene Möglichkeiten, mit ITask Versuchte :: SetApplicationName() -Methode und keine gearbeitet, fand schließlich den Weg, um den Anwendungspfad mit doppelten Anführungszeichen Task Scheduler Managed Wrapper

using (TaskService ts = new TaskService(@"\\RemoteServer")) 
{ 
    TaskDefinition td = ts.NewTask(); 
    td.RegistrationInfo.Description = "Does something"; 

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

    // Register the task in the root folder 
    ts.RootFolder.RegisterTaskDefinition(@"Test", td); 
}