我試圖在C#中的Windows任務調度程序中創建新任務。我已經走到這一步,是非常http://bartdesmet.net/blogs/bart/archive/2008/02/23/calling-the-task-scheduler-in-windows-vista-and-windows-server-2008-from-managed-code.aspx嘗試創建新的任務調度程序任務時出現異常
一切的複製和粘貼彙編就好了不過來運行時,我得到以下異常:
無法投類型的COM對象「系統.__ ComObject」接口類型'TaskScheduler.ITimeTrigger'。此操作失敗,因爲具有IID「{B45747E0-EBA7-4276-9F29-85C5BB300006}」的接口的COM組件上的QueryInterface調用由於以下錯誤而失敗:沒有此類接口支持(異常來自HRESULT:0x80004002(E_NOINTERFACE)) 。
以下是所有代碼,以便您可以在不遵循上述鏈接的情況下查看我在此處所做的操作。
TaskSchedulerClass Scheduler = new TaskSchedulerClass();
Scheduler.Connect(null, null, null, null);
ITaskDefinition Task = Scheduler.NewTask(0);
Task.RegistrationInfo.Author = "Test Task";
Task.RegistrationInfo.Description = "Just testing this out.";
ITimeTrigger Trigger = (ITimeTrigger)Task.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_DAILY);
Trigger.Id = "TestTrigger";
Trigger.StartBoundary = "2010-05-12T06:15:00";
IShowMessageAction Action = (IShowMessageAction)Task.Actions.Create(_TASK_ACTION_TYPE.TASK_ACTION_SHOW_MESSAGE);
Action.Id = "TestAction";
Action.Title = "Test Task";
Action.MessageBody = "This is a test.";
ITaskFolder Root = Scheduler.GetFolder("\\");
IRegisteredTask RegisteredTask = Root.RegisterTaskDefinition("Background Backup", Task, (int)_TASK_CREATION.TASK_CREATE_OR_UPDATE, null, null, _TASK_LOGON_TYPE.TASK_LOGON_INTERACTIVE_TOKEN, "");
被拋出異常的行是這樣的一個
ITimeTrigger Trigger = (ITimeTrigger)Task.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_DAILY);
異常消息還挺有道理的我,但我怕我不知道有足夠的瞭解COM真正知道在哪裏以此開始。
此外,我應該補充說我使用VS 2010,我不得不將項目設置爲x86或x64 CPU,而不是通常的「任何CPU」,因爲它一直給我一個BadImageFormatException。我懷疑這與我目前的問題有關,但以防萬一我想我可能會提及它。
啊!這解決了它。謝謝你的快速反應!現在我明白了什麼是錯誤的,這很明顯。 – seaneshbaugh 2010-05-12 12:28:16