我正在開發基於附加應用程序。每個附加使用調度程序。加載的附加計劃任務。我的應用程序只運行一個實例。有時應用程序關閉,有時運行。因此我需要使用Windows 7任務調度程序是否可以在自己的應用程序中使用Windows 7任務調度程序
如何在自己的應用程序上使用任務調度程序?
我需要從應用程序
我需要的是,當任務完成,信息發送到我的應用程序或調用我的應用程序的任何功能
是否有可能創造新的任務?
如何做到這一點?
我正在開發基於附加應用程序。每個附加使用調度程序。加載的附加計劃任務。我的應用程序只運行一個實例。有時應用程序關閉,有時運行。因此我需要使用Windows 7任務調度程序是否可以在自己的應用程序中使用Windows 7任務調度程序
如何在自己的應用程序上使用任務調度程序?
我需要從應用程序
我需要的是,當任務完成,信息發送到我的應用程序或調用我的應用程序的任何功能
是否有可能創造新的任務?
如何做到這一點?
在CodeProject上看看這個項目。
如果你想從你的代碼來創建,管理或刪除任務是沒有問題的Windows 7的計劃任務系統進行交互。 (我在Windows 7的過程中,我寫了Pluralsight介紹。)添加一個COM引用的TaskScheduler,然後你做這樣的事情:
ITaskService scheduler = new TaskSchedulerClass();
scheduler.Connect(null, null, null, null);
ITaskFolder rootFolder = scheduler.GetFolder("\\");
ITaskFolder folder = rootFolder.GetFolders(0).Cast<ITaskFolder>().FirstOrDefault(
f => f.Name == "Windows7Course");
if (folder == null)
{
folder = rootFolder.CreateFolder("Windows7Course", null);
}
ITaskDefinition task = scheduler.NewTask(0);
IExecAction action = (IExecAction)task.Actions.Create(_TASK_ACTION_TYPE.TASK_ACTION_EXEC);
action.Path = typeof(SayHello.Form1).Assembly.Location;
action.WorkingDirectory = Path.GetDirectoryName(typeof(SayHello.Form1).Assembly.Location);
ISessionStateChangeTrigger trigger = (ISessionStateChangeTrigger)task.Triggers.Create(
_TASK_TRIGGER_TYPE2.TASK_TRIGGER_SESSION_STATE_CHANGE);
trigger.StateChange = _TASK_SESSION_STATE_CHANGE_TYPE.TASK_SESSION_UNLOCK;
task.Settings.DisallowStartIfOnBatteries = true;
task.RegistrationInfo.Author = "Kate Gregory";
task.RegistrationInfo.Description = "Launches a greeting.";
IRegisteredTask ticket = folder.RegisterTaskDefinition(
"GreetReturningUser",
task,
(int)_TASK_CREATION.TASK_CREATE_OR_UPDATE,
null,
null,
_TASK_LOGON_TYPE.TASK_LOGON_INTERACTIVE_TOKEN,
null);
這種特殊的樣品運行的EXE,它是在同一個解決方案(另一個項目)。你將不得不調整Action.Path,Action.WorkingDirectory等來滿足你的需求。
這是一個好的開始。但是,CodePlex.com中的任務計劃程序有一個經過管理的包裝程序,使其更容易。 http://taskscheduler.codeplex.com/ – newman 2011-03-25 19:40:02
感謝Kate這個優秀的例子,在我的漫遊中,我沒有先遇到你的代碼。
我已經通過c#代碼註冊計劃任務,並且毫不意外地必須調整我的計劃創建代碼,因爲我在之前沒有遇到過的一個環境中遇到障礙。我希望我在最強大的代碼來了,認爲它可能也有益於他人,如果我分享一些東西,你可以嘗試,如果遇到環境問題:
所有最好的 馬特
這個庫真的在Windows 7上運行? – ebattulga 2010-07-29 05:41:48
是的。它適用於Vista,所以它可以在Windows 7上運行。它按照Kate Gregory描述的方式做了一些事情。 – 2010-07-29 15:29:20