2

我想使用与 Windows 任务计划程序相同的 C# 创建一个任务计划程序,以在特定时间运行我的 .bat(批处理)文件。

我发现了这个有用的链接(http://www.codeproject.com/Articles/38553/TaskScheduler

在这个他们安排触发器,我想安排我的.bat文件我的意思是当我试图在标签文本框中提供我的批处理文件路径时,它只是触发了触发器,而不是运行我的批处理文件所以,我修改了那个代码,现在我也可以运行我的批处理文件了,

但是,当我关闭我的应用程序触发也停止,所以,有什么办法可以触发或运行我的批处理文件,即使我关闭我的应用程序喜欢窗口任务调度程序???

请帮助我。

注意:它的桌面应用程序使用 C#

4

3 回答 3

0

所以有什么问题?下载后可以查看Demo.cs,在哪里可以找到方法private void CreateSchedulerItem()和事件triggerItem_OnTrigger。您可以更改此事件以运行所需的批处理文件。

于 2013-07-19T10:47:58.673 回答
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();
    }

现在,您可以将此路径保存在一些通用类中,并使其可以访问两者。

于 2013-07-19T10:54:50.907 回答
0

像这样的东西。我希望你能改变Console.WriteLineSystem.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");
}
于 2013-07-20T13:41:16.583 回答