如何使用“;schtasks&x201D;不使用C#进程打开新的命令行窗口?

如何使用“;schtasks&x201D;不使用C#进程打开新的命令行窗口?,c#,C#,我试图在不打开新命令行窗口的情况下从C#运行计划任务,使用以下代码但没有成功(每次使用时都会提示一个窗口) 我怎样才能解决这个问题 非常感谢您的关注您可以使用提供对任务调度器API访问的库 例如使用 您确定看到的命令行窗口不是您自己的应用程序的窗口吗?您可能希望转而考虑运行后台服务。谢谢Dasanko,就这样!!!我正在看我自己的应用程序。我用Windows窗体应用程序做了一个简单的测试来检查它。谢谢你的回答。我正在使用该库创建计划任务,但我需要按需运行它,不幸的是,该库没有该功能。@Carlo

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

我怎样才能解决这个问题


非常感谢您的关注

您可以使用提供对任务调度器API访问的库

例如使用


您确定看到的命令行窗口不是您自己的应用程序的窗口吗?您可能希望转而考虑运行后台服务。谢谢Dasanko,就这样!!!我正在看我自己的应用程序。我用Windows窗体应用程序做了一个简单的测试来检查它。谢谢你的回答。我正在使用该库创建计划任务,但我需要按需运行它,不幸的是,该库没有该功能。@CarlosEduardoCarmonaOrtega,您正在使用此特定库吗?我添加了一个可用于运行任务的代码块。请记住,您的应用程序可能需要UAC提升才能运行某些计划任务。非常感谢您的帮助。是的,我正在使用这个特定的库,但我不知道如何运行任务。我检查了文档,没有发现任何关于它的信息。在本教程之后,我正在编写一个绕过UAC提示的程序。到目前为止,这个图书馆将是一条必经之路。非常感谢。顺便问一下,你知道这个库中是否有一个方法可以确定任务的存在吗?@CarlosEduardoCarmonaOrtega,我认为如果任务不存在或者你无权访问它,GetTask将返回null。
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)
                {

                }



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