使用C#的任务调度器(用于调度.bat(批处理)文件)
我想使用C#创建一个与Windows任务调度器相同的任务调度器,以便在特定时间运行我的.bat(批处理)文件 我发现了这个有用的链接() 在这里,他们计划触发器,我想计划.bat文件 我的意思是,当我试图在标记文本框中给出批处理文件路径时,它只是触发了触发器,而不是运行批处理文件 所以,我稍微修改了代码,现在我也可以运行批处理文件了 但是,当我关闭应用程序时,触发也会停止, 那么,即使我关闭我的应用程序(如Windows任务调度器),是否有任何方法可以触发或运行我的批处理文件 请帮帮我使用C#的任务调度器(用于调度.bat(批处理)文件),c#,.net,scheduled-tasks,C#,.net,Scheduled Tasks,我想使用C#创建一个与Windows任务调度器相同的任务调度器,以便在特定时间运行我的.bat(批处理)文件 我发现了这个有用的链接() 在这里,他们计划触发器,我想计划.bat文件 我的意思是,当我试图在标记文本框中给出批处理文件路径时,它只是触发了触发器,而不是运行批处理文件 所以,我稍微修改了代码,现在我也可以运行批处理文件了 但是,当我关闭应用程序时,触发也会停止, 那么,即使我关闭我的应用程序(如Windows任务调度器),是否有任何方法可以触发或运行我的批处理文件 请帮帮我 注意:它
注意:它的桌面应用程序使用C#那么,问题出在哪里?下载后,您可以查看
Demo.cs
,在那里可以找到方法private void createScheduleItem()
和事件triggerItem\u OnTrigger
。您可以更改此事件以运行所需的批处理文件。您可以将批处理文件的路径放置在标记文本框中。选中仅在一次中激活的框,设置时间,此时触发
注意:它只是触发了fire。您要做的是运行批处理文件。在这种情况下,您需要修改代码。你可以从
private void buttonCreateTrigger_Click(object sender, EventArgs e)
{
CreateSchedulerItem();
}
在Demo.cs页面中
要在TaskScheduler.cs中运行批处理文件或exe,请查找并替换此代码
void _triggerTimer_Tick(object sender, EventArgs e)
{
_triggerTimer.Stop();
foreach (TriggerItem item in TriggerItems)
if (item.Enabled)
while (item.TriggerTime <= DateTime.Now)
item.RunCheck(DateTime.Now);
System.Diagnostics.Process.Start("Your Path");
_triggerTimer.Start();
}
void\u triggerTimer\u勾选(对象发送方,事件参数e)
{
_triggerTimer.Stop();
foreach(TriggerItems中的TriggerItem项目)
如果(项已启用)
while(item.TriggerTime类似于此。我希望您可以在System.Diagnostics
上更改Console.WriteLine
static void Main(string[] args) {
AutoResetEvent autoResetEvent = new AutoResetEvent(false);
Timer timer = new Timer(PrintHello, autoResetEvent, 0, 5000);
autoResetEvent.WaitOne();
}
private static void PrintHello(Object state) {
Console.WriteLine("Hello");
}
你的问题不清楚,但你能不能把它作为一个参数传递给main?你有什么理由不能只使用windows任务调度程序吗?@Reubz这个应用程序我们是为非技术人员的员工设计的,所以我们必须创建一个桌面表单,通过它我们可以调度批处理文件,这个批处理文件将调用其他c在OLE应用程序上。@doctor如果可能的话,请单击我在问题中提到的链接,下载该项目并运行它。在这个项目中,设计是完美的,但我不知道如何在这个项目中给出批处理文件的路径,所以它将在计划时运行。当我在标记te中给出批处理文件的路径时,请尝试在codeprojectya上发布您的问题xtbox只是触发了触发器,没有运行我的批处理文件。因此,我正在寻找代码,如何运行我的批处理文件,我尝试在私有void CreateSchedulerItem()和事件触发器Item_OnTrigger中进行一些修改,但我没有得到solution@VARUNNAYAK检查我的答案…如果有帮助,请将其标记为答案:)嘿,谢谢你的代码,我只是稍微修改一下,if(item.Enabled)而(item.TriggerTime你能告诉我应该应用什么类型的修改吗???我改变了编码,所以现在我可以根据调度运行批处理文件,但当我终止程序时,它无法调度,所以,有没有办法运行批处理文件,即使我终止我的应用程序,比如刚才复制并通过的窗口任务调度你亲自尝试了什么?顺便说一句,要解决你的问题,你不需要这么复杂的程序。你可以用10行代码来解决它。看看后面。