一:NuGet中搜索包:Microsoft.Win32.TaskScheduler并引用:
public static void RunTaskService(string vbsRootPath) { string taskName = "HelperTray1"; TaskService ts = new TaskService(); Microsoft.Win32.TaskScheduler.Task wsTask = ts.GetTask(taskName); if (wsTask == null) { string vbsStart = Path.Combine(vbsRootPath, "Start.vbs");//ApiConfig.ExtPath TaskDefinition td = ts.NewTask(); td.RegistrationInfo.Description = taskName; //開機后2分鐘開始運行任務 //td.Triggers.Add(new BootTrigger { Delay = new TimeSpan(0, 2, 0) }); //參數1 Interval 間隔:每次重新啟動任務之間的時間量。允許的最長時間為31天,允許的最短時間為1分鐘 //參數2 Duration 持續時間:重復模式的持續時間。允許的最短時間是一分鐘。如果指定了TimeSpan.Zero,則該模式將無限期地重復。 //參數3:獲取或設置一個布爾值,該值指示正在運行的任務實例在重復模式持續時間結束時停止。 RepetitionPattern repetition = new RepetitionPattern(new TimeSpan(0, 1, 0), TimeSpan.Zero, true); td.Triggers.Add(new DailyTrigger { Repetition = repetition }); td.Actions.Add(new ExecAction("wscript.exe", vbsStart, null)); ts.RootFolder.RegisterTaskDefinition(taskName, td); } }
二、在系統C:\Windows\System32 下查找DLL:taskschd.dll并引用到項目中:
public static void CreateTaskScheduler(string vbsRootPath) { try { LogEvent.LogInfo.Fatal("2創建計劃任務:1"); string taskName = "HelperTray2"; TaskSchedulerClass scheduler = new TaskSchedulerClass(); //pc-name/ip,username,domain,password scheduler.Connect(null, null, null, null); ITaskFolder folder = scheduler.GetFolder("\\"); IRegisteredTask rt = null; try { //搜索不到會拋異常 rt = folder.GetTask(taskName); if (rt != null) return; } catch(Exception ex) { LogEvent.LogInfo.Info("任務計劃程序不存在,創建:"); } LogEvent.LogInfo.Fatal("2創建計劃任務:2"); //set base attr ITaskDefinition task = scheduler.NewTask(0); //task.RegistrationInfo.Author = "system";//creator task.RegistrationInfo.Description = taskName; //set trigger (IDailyTrigger ITimeTrigger) 設置小時/分/秒來實現 // ITimeTrigger tt = (ITimeTrigger)task.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_TIME); // tt.Repetition.Interval = interval;// format PT1H1M==1小時1分鐘 設置的值最終都會轉成分鐘加入到觸發器 //設置每天特定的時間來實現 IDailyTrigger tt = (IDailyTrigger)task.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_DAILY); tt.StartBoundary = string.Format("1970-05-01T{0}:00:00", "04"); tt.EndBoundary = string.Format("2100-05-01T{0}:00:00", "04"); //tt.Repetition= new RepetitionPattern //start time //set action IExecAction action = (IExecAction)task.Actions.Create(_TASK_ACTION_TYPE.TASK_ACTION_EXEC); action.Path = "wscript.exe"; string vbsStart = Path.Combine(vbsRootPath, "HelperStart.vbs");//ApiConfig.ExtPath action.Arguments = vbsStart;//運行程序時需要的參數,如果沒有可以不寫。 task.Settings.ExecutionTimeLimit = "PT0S"; //運行任務時間超時停止任務嗎? PTOS 不開啟超時 task.Settings.DisallowStartIfOnBatteries = false;//只有在交流電源下才執行 task.Settings.RunOnlyIfIdle = false;//僅當計算機空閑下才執行 IRegisteredTask regTask = folder.RegisterTaskDefinition(taskName, task, (int)_TASK_CREATION.TASK_CREATE, null, null, _TASK_LOGON_TYPE.TASK_LOGON_INTERACTIVE_TOKEN, ""); IRunningTask runTask = regTask.Run(null); //return runTask.State; LogEvent.LogInfo.Fatal("2創建計劃任務:3"); } catch (Exception ex) { LogEvent.LogInfo.Fatal("創建計劃任務異常:"+ex); //throw ex; } }
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
7號和5號電池大小對比 5號電池和7號電池哪個大一點?五號是大電池還是小電池? 這兩種電池很容易區分。5號電池大,7號電池小。5號或7號電池的外包裝上都有標記,5號電池比7號電池大。區分: 1、AA也就是我們通常所說的5號電池;AAA這就是我們通常所說的7號電池。所以可以看看電池上面的標志來區分。2、5號電池一般尺寸為直徑14mm,高度50mm;7號電池一般直徑為10mm,高度44mm。所以很...
誰有 《玻璃杯》 歌詞?玻璃演唱:Cremebrulee組合你曾說我的心像玻璃。要像水一樣透明,哪怕滿是心碎。你可以很輕松的撒出來,假裝無所謂。我常說我就像一面玻璃。心痛,無愿,無悔,再灑脫,再美好的笑。我該為我破碎的心付出什么?嘿,一小杯裝不下太多眼淚多一點愛會讓你更累。撒一些,讓自己飛起來。輕輕敲打的玻璃總是太容易破碎。眼淚裝不下魅力。誰殲滅了誰,誰能理解?你曾說我的心像玻璃。要像水一樣透明,...
天津地鐵三號線都經過哪些站?天津地鐵3號線如下:南站-楊武莊-學府工業區-高新區-大學城-花園-王頂堤-紅旗南路-周鄧紀念館-天塔-吳家窯-西康路-營口路-和平路-津灣廣場-天津火車站-金石橋-中山路-北站-鐵東路-張興莊-宜興埠-天士力-華北集團天津地鐵3號線價格表?天津地鐵3號線,4個區間內乘坐5站(含5站)每人一張2元;4區間以上乘坐5站,9區間以下(含10站)乘坐10站,每站3元;9區間以...