gpt4 book ai didi

c# - 尝试创建新的任务计划程序任务时抛出异常

转载 作者:太空宇宙 更新时间:2023-11-03 11:48:18 29 4
gpt4 key购买 nike

我试图在 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 的复制和粘贴。

一切都编译得很好但是运行时我得到以下异常:

无法将类型为“System.__ComObject”的 COM 对象转换为接口(interface)类型“TaskScheduler.ITimeTrigger”。此操作失败,因为 IID 为“{B45747E0-EBA7-4276-9F29-85C5BB300006}”的接口(interface)的 COM 组件上的 QueryInterface 调用因以下错误而失败:不支持此类接口(interface)(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。我怀疑这与我当前的问题有关,但以防万一我想我不妨提一下。

最佳答案

您正在使用不同的枚举值,对于 TASK_TRIGGER_DAILY,您将获得一个 IDailyTrigger,而不是一个 ITimeTrigger

参见 this MSDN page .

关于c# - 尝试创建新的任务计划程序任务时抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2818517/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com