首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接口与任务计划程序一起工作。

接口与任务计划程序一起工作。
EN

Stack Overflow用户
提问于 2015-08-26 07:18:21
回答 1查看 179关注 0票数 1

我正在开发一个简单的JScript脚本,由Windows Script Host运行。

此脚本需要读取任务计划程序中的一些数据。我不知道该怎么开始。

我已经在c++中使用任务调度器2.0接口实现了类似的功能

我可以在JScript中以某种方式使用这些接口吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-26 07:30:30

不,不能使用来自JScript的TaskScheduler2.0接口。

但是,您可以读取任务调度程序创建的XML文件。它们包含所有定义任务的所有属性。

它们驻留在%windir%\system32\tasks中(需要管理员权限来读取该目录及其内容)。

下面是这样一个文件的示例,它是非常简单的XML:

代码语言:javascript
复制
<Task version="1.1" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Author>SYSTEM</Author>
    <Description>Some text here...</Description>
  </RegistrationInfo>
  <Triggers>
    <LogonTrigger>
      <Enabled>true</Enabled>
    </LogonTrigger>
    <CalendarTrigger>
      <Enabled>true</Enabled>
      <StartBoundary>2015-07-16T05:32:00</StartBoundary>
      <ScheduleByDay>
        <DaysInterval>1</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>
  </Triggers>
  <Settings>
    <Enabled>true</Enabled>
    <ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
    <Hidden>false</Hidden>
    <WakeToRun>false</WakeToRun>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <Priority>5</Priority>
    <IdleSettings>
      <Duration>PT600S</Duration>
      <WaitTimeout>PT3600S</WaitTimeout>
      <StopOnIdleEnd>false</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
  </Settings>
  <Principals>
    <Principal id="Author">
      <UserId>System</UserId>
      <RunLevel>HighestAvailable</RunLevel>
      <LogonType>InteractiveTokenOrPassword</LogonType>
    </Principal>
  </Principals>
  <Actions Context="Author">
    <Exec>
      <Command>C:\path\to\executable.exe</Command>
      <Arguments>/args</Arguments>
    </Exec>
  </Actions>
</Task>

要找出的事情清单:

  • 如何运行具有提升权限的脚本。
  • 如何使用FileSystemObject导航目录结构。
  • 如何使用MSXML2 COM对象打开XML文件
  • 如何使用XPath导航这些XML文档。
  • 如何处理默认的XML命名空间(这比听起来更重要--在正确完成此部分之前,您不会从XPath获得任何结果)。
  • 如果您的任务需要,请了解ISO8601时间段表示法是如何工作的,以便您可以解码像PT600S这样的值。

幸运的是,对于所有这些事情,有很多例子(在这个站点和其他地方)可以帮助您入门。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32220258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档