如何在不使用C#进程打开新命令行窗口的情况下使用“schtasks”执行计划任务

本文关键字:情况下 schtasks 执行 任务 窗口 计划 进程 命令行 | 更新日期: 2024-08-10 02:50:29

我试图在没有打开新命令行窗口的情况下从C#运行一个计划任务,使用以下代码没有成功(每次使用它都会提示一个窗口)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                try
                {
                    Process p1 = new Process();
                    p1.StartInfo.FileName = @"C:'Windows'System32'schtasks.exe";
                    p1.StartInfo.Verb = "runas";
                    p1.StartInfo.Arguments = "/run /tn CCleaner";
                    p1.StartInfo.RedirectStandardOutput = true;
                    p1.StartInfo.UseShellExecute = false;
                    p1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                    p1.StartInfo.CreateNoWindow = true;
                    p1.Start();
                    p1.Close();
                }
                catch (Exception ex)
                {
                }

            }
        }
    }

我该如何解决这个问题?

非常感谢您的关注

如何在不使用C#进程打开新命令行窗口的情况下使用“schtasks”执行计划任务

您可以使用一个库来访问任务调度程序API。

例如使用http://taskscheduler.codeplex.com/

using (var ts = new TaskService())
{
    Task task = ts.GetTask("My task");                
    task.Run();                
}