无法使用c Sharp创建基于事件的任务计划程序

时间:2019-05-13 05:44:36

标签: c# taskscheduler windowstaskschedule

我试图使用c Sharp创建窗口Task。我编写了代码,但是代码无法正常工作,我得到了运行时expcetionn。这是基于事件的任务计划程序。     我正在尝试安排一个任务,该任务将在系统中的WIFI网络更改时调用。

我试图查看许多来自Microsoft以及外部的文章。我不想使用任何类似“ Quartz”之类的第三方库。

using (TaskService ts = new TaskService())
{
         //Create a new task definition and assign properties
         TaskDefinition td = ts.NewTask();

         td.RegistrationInfo.Description = "Git Config Details";

         // Create a trigger that will fire the task at this time every other day
         EventTrigger Etrigger = new EventTrigger("Mircosoft-Windows-NetworkProfile/Opertaional", "NetworkProfile", 10002);

                Etrigger.Enabled = true;

                td.Triggers.Add(Etrigger);

                // Create an action that will launch Notepad whenever the trigger fires
                td.Actions.Add(new ExecAction(@"C:\projects\Own\powershell\first.bat"));

                // Register the task in the root folder
                ts.RootFolder.RegisterTaskDefinition("Duplicate", td, TaskCreation.CreateOrUpdate, "NT AUTHORITY\\NETWORKSERVICE", null,
                                            TaskLogonType.ServiceAccount);
            }

1 个答案:

答案 0 :(得分:0)

我的错,一些拼写错误导致了此问题。 Microsoft和我的上述代码中的操作拼写错误。

这是目前处于工作状态的新代码。

using (TaskService ts = new TaskService())
            {
                //Create a new task definition and assign properties
                TaskDefinition td = ts.NewTask();
                td.RegistrationInfo.Description = "Duplicate";

                // Create a trigger that will fire the task at this time every other day
                EventTrigger Etrigger = new EventTrigger("Microsoft-Windows-NetworkProfile/Operational", "Microsoft-Windows-NetworkProfile", 10002);

                Etrigger.Enabled = true;

                td.Triggers.Add(Etrigger);

                // Create an action that will launch Notepad whenever the trigger fires
                td.Actions.Add(new ExecAction(@"C:\projects\Own\powershell\first.bat"));

                // Register the task in the root folder
                ts.RootFolder.RegisterTaskDefinition("Duplicate", td, TaskCreation.CreateOrUpdate, "NT AUTHORITY\\NETWORKSERVICE", null,
                                            TaskLogonType.ServiceAccount);
            }

感谢所有对我的帖子发表评论的人。