2015-02-24 68 views
0

我試圖運行在C#中的計劃任務,而無需打開新的命令行窗口,使用下面的代碼沒有任何成功如何使用「schtasks」執行計劃任務而無需使用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) 
       { 

       } 



      } 
     } 
    } 

我怎麼能解決這個問題(它每次我用它時都提示窗口)問題?

非常感謝你的關注

+3

你確定你看到上來的命令行窗口是不是你自己的應用程序?您可能想要考慮運行後臺服務。 – Dasanko 2015-02-24 21:57:28

+0

謝謝Dasanko,就是這樣!我看到了我自己的應用程序。我使用Windows窗體應用程序進行了簡單的測試來檢查它。 – ccarmona1981 2015-02-24 22:15:37

回答

0

您可以使用它可以訪問任務計劃程序API庫。

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

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

謝謝你的回答。我正在使用該庫來創建計劃任務,但我需要按需運行它,不幸的是,此庫不具備該功能。 – ccarmona1981 2015-02-24 22:02:10

+0

@CarlosEduardoCarmonaOrtega,你使用這個特定的庫?我添加了一個可用於運行任務的代碼塊。請記住,您的應用程序可能需要UAC提升才能運行某些計劃任務。 – alex 2015-02-24 22:25:49

+0

非常感謝您的幫助。是的,我正在使用這個特定的庫,但我不知道如何運行任務。我檢查了文檔,但沒有發現任何關於它的信息。我正在編寫一個程序來繞過本教程中的UAC提示符http://www.sevenforums.com/tutorials/11949-elevated-program-shortcut-without-uac-prompt-create.html。到目前爲止,這個圖書館將是一條走向。謝謝!!!順便問一下,你知道這個庫中是否有方法來確定任務的存在嗎? – ccarmona1981 2015-02-24 23:03:57

相關問題