从c#调用Task Scheduler时如何传递参数

时间:2017-07-26 10:43:15

标签: c# console-application taskscheduler

在这里,我创建了用于编写.txt文件的服务,并使用以下代码从任务计划程序传递参数:

static void Main(string[] args)
    {

        string abc = string.Empty;
        foreach (var item in args)
        {
            abc += item +" ";
        }
        string path = @"D:\GST Project\Demo Text File.txt";
        File.WriteAllText(path, abc);
    }

我在任务调度程序中添加了这样的任务: Task scheduler

我想通过下面的C#代码调用我的调度程序任务是我从Link获取的代码

using (TaskService tasksrvc = new TaskService(server.Name, login, domain, password))
{
    Task task = tasksrvc.FindTask(taskName);
    task.Run();       
}

我想知道如何通过TaskService传递参数。也 我应该通过什么代替Server.Name,login,domain,Password。 谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

尝试以下代码: - 这将有助于你

TaskService.Instance.AddTask("Test", QuickTriggerType.Daily, "Exe file path", "test");

这将安排您的任务并在您的exe文件中传递测试参数

答案 1 :(得分:0)

我应该通过什么代替Server.Name,login,domain,Password

  

serverName - 要连接到的计算机的名称。如果   serverName参数为空,然后执行此方法   本地电脑。

     

login-连接期间使用的用户名   电脑。如果未指定用户,则表示当前令牌   用过的。

     

domain - user参数中指定的用户的域。

     

password - 用于连接计算机的密码。如果   未指定用户名和密码,则为当前令牌   使用

您可以使用TaskDefinition传递参数和其他设置。请尝试以下方法传递参数

使用(TaskService ts = new TaskService())       {

     TaskDefinition td = ts.NewTask();
     td.RegistrationInfo.Description = "Does something";

     //l fire the task at this time every day
     td.Triggers.Add(new DailyTrigger { DaysInterval = 1 });

     // Create an action that will launch Notepad and you can pass paremeters
     td.Actions.Add(new ExecAction("notepad.exe", "c:\\test.log", null));

     // Register the task in the root folder
     ts.RootFolder.RegisterTaskDefinition(@"Test", td);


  }