启动时从隐形BAT窗口打开可见窗口

时间:2018-03-26 21:20:15

标签: windows batch-file command-line scheduled-tasks executable

我正在编写这个小程序,阻止在用户不知情的情况下将计划任务添加到系统中https://github.com/DVLP/Unscheduler

关于程序如何运作的一些背景

  1. install.bat创建正在记录的当前计划任务的快照,并且正在添加新任务check.bat以在每次登录时运行
  2. 每次check.bat运行时,它都会获取所有计划任务的列表,并将其与快照
  3. 进行比较
  4. 当任务未在快照中时,它将显示在列表中
  5. 现在用户可以按一个数字删除任何新条目
  6. 当满意时,用户按“S”以保存新快照
  7. 这就是全部

    这一切都在我的计算机上正常工作,但是在每次登录时,只要步骤 2 ,即使没有条目,也会出现一个窗口。

    最后是实际问题:

    如何检测到新条目时,如何以隐藏方式运行它并仅显示窗口(或重新运行它)?

    目前,窗口是 - 作为系统运行 - 始终不可见 或以用户身份运行 - 始终可见

    我知道“runas”但需要提示输入用户密码。现在一切正常,没有提示输入密码,所以在install.bat期间甚至一次提示也不是一个选项。

1 个答案:

答案 0 :(得分:0)

通过创建两个任务找到解决方法

-FirstTask在每次登录时作为系统运行不可见

-SecondTask创建为用户的任务,仅运行一次 - 在50年内(从不,基本上只有手动触发)

- 当第一个任务检测到新条目时,它使用schtasks /run /ts SecondTask以可见窗口运行第二个任务,允许用户交互