【问题标题】:ITask::SetApplicationName Application name with space issueITask::SetApplicationName 有空格问题的应用程序名称
【发布时间】:2016-05-05 07:47:03
【问题描述】:

在我的 C# 应用程序中,我使用 ITask 任务计划程序界面将任务创建到任务计划程序中。我可以创建任务,但在分配应用程序名称时遇到问题。 每次我创建任务 “启动程序”(应用程序名称)不包含在双引号中,即使我从代码中附加双引号并使用 @987654323 设置应用程序名称@ 方法不起作用。

当我尝试从任务计划程序编辑任务时,真正的问题出现了。实际路径和参数搞砸了(请参阅图片)。 “G:\Some Name WithSpace\Build\Some.exe”这是我的实际应用程序名称。

注意:如果我从 MS 任务计划程序创建相同的,它会附加双引号。

【问题讨论】:

  • 您是否在转义原始字符串中的引号? MS 代码将您的命令行解析为“C:\App Args”的合理预期。你试过"\"C:\App Args\""吗?
  • @KenBrittain,是的,也试过了,但没用。一旦将值传递给 ITask::SetApplicationName() 方法,它就会在不带引号的情况下分配。

标签: c# taskscheduler


【解决方案1】:

使用 ITask::SetApplicationName() 方法尝试了许多不同的方法,但都没有奏效,最后找到了使用 Task Scheduler Managed Wrapper 用双引号将应用程序路径括起来的方法

using (TaskService ts = new TaskService(@"\\RemoteServer"))
{
    TaskDefinition td = ts.NewTask();
    td.RegistrationInfo.Description = "Does something";

    // Create an action that will launch Notepad whenever the trigger fires
    td.Actions.Add(new ExecAction("notepad.exe", "\"c:\\Some Folder\\test.log\"", null));

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

【讨论】:

    猜你喜欢
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 2021-11-04
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多