如何用C#实现唤醒电脑执行任务并程序化勾选对应复选框
程序化勾选“唤醒计算机执行任务”复选框并实现唤醒功能
要实现界面中“唤醒计算机运行此任务”复选框的程序化勾选,同时让任务能正常唤醒电脑执行,只需在你的现有代码中添加两处关键配置:
- 给
DailyTrigger开启唤醒触发设置,对应界面复选框的勾选操作 - 配置任务全局设置,确保系统允许该任务唤醒计算机
修改后的完整代码如下:
TaskService tService = new TaskService(); TaskDefinition tDefinition = tService.NewTask(); // 任务注册信息配置 tDefinition.RegistrationInfo.DisplayName = tskName; tDefinition.RegistrationInfo.Description = tskDesc; tDefinition.RegistrationInfo.Author = PriUtilizador; tDefinition.RegistrationInfo.Date = DateTime.Now; // 配置每日触发器 DailyTrigger dtrigger = new DailyTrigger(); dtrigger.StartBoundary = start; dtrigger.DaysInterval = ((short)repeat); dtrigger.EndBoundary = end; dtrigger.Enabled = true; // 核心设置:勾选唤醒计算机的复选框 dtrigger.WakeToRun = true; tDefinition.Triggers.Add(dtrigger); // 任务全局设置:允许唤醒计算机 tDefinition.Settings.WakeToRun = true; // 可选配置:根据需求调整,比如禁止仅空闲时运行 tDefinition.Settings.RunOnlyIfIdle = false; // 完成任务注册(原代码缺失的关键步骤) tService.RootFolder.RegisterTaskDefinition(tskName, tDefinition);
关键说明
dtrigger.WakeToRun = true:直接对应界面中“唤醒计算机运行此任务”的复选框,设置后系统会在触发时间到达时,自动唤醒处于睡眠/休眠状态的电脑来执行任务。tDefinition.Settings.WakeToRun = true:这是任务级别的权限配置,确保系统认可该任务具备唤醒电脑的权限,和触发器的设置配合才能生效。- 补充的
RegisterTaskDefinition方法是将配置好的任务正式注册到系统任务计划库中,没有这一步任务不会生效。
内容的提问来源于stack exchange,提问作者Gonçalo Figueiredo
相关产品推荐
相关产品推荐

