我想使用与Windows任务计划程序相同的C#创建一个任务计划程序,以便在特定时间运行我的.bat(批处理)文件。
我找到了这个有用的链接(http://www.codeproject.com/Articles/38553/TaskScheduler)
在这个他们安排触发器,我想安排我的.bat文件 我的意思是,当我试图在标签文本框中提供我的批处理文件路径时,它刚刚触发了触发器,而不是运行我的批处理文件 所以,我稍微修改一下这段代码,现在我也可以运行我的批处理文件,
但是,当我关闭我的应用程序触发也停止, 所以,即使我关闭我的应用程序liks窗口任务调度程序,我有什么方法可以触发或运行我的批处理文件???
请帮帮我。
注意:其桌面应用程序使用C#
答案 0 :(得分:0)
那么,问题是什么?下载后,您可以查看Demo.cs
,您可以在其中找到方法private void CreateSchedulerItem()
和事件triggerItem_OnTrigger
。您可以更改此事件以运行所需的批处理文件。
答案 1 :(得分:0)
您可以将批处理文件的路径放在标记文本框中。仅在一次性框中选中有效,设置时间,那时触发器被触发了。
注意:它只是触发器。你正在使用的是运行批处理文件。在这种情况下,你需要修改代码。你可以从
开始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();
}
现在,您可以将此路径保存在某些常见类中,并使其可以访问这两个路径。
答案 2 :(得分:0)
像这样的东西。我希望您可以更改Console.WriteLine
上的System.Diagnostics
。
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");
}