我编写了一个小型控制台程序,用于检查我的所有网站是否正常运行。我使用Microsoft Windows 任务计划程序每天自动运行一次该程序。
问题是,程序每次运行时都会很自然地窃取焦点。我希望它启动时不会成为桌面上的最顶层窗口。实现此目的的最简单方法是什么?当然,我可以重写 EXE 以创建背景窗口(或根本没有窗口),但如果任务计划程序有“不窃取焦点”之类的选项就好了,但也许这根本不可能......
答案1
您可以让任务计划程序运行一个打开控制台程序的 vbscript。vbscript 可以使用 Shell Run 方法将其最小化打开,如下所示:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad.exe", 6, true
有关于此的一些基本信息http://ss64.com/vb/run.html
答案2
不要直接调用该应用程序。从最小化启动的快捷方式运行它。
我想您也可以将批处理文件添加到混合中以实现/start /min
相同的效果,但我怀疑批处理文件会窃取焦点,除非从最小化启动的快捷方式调用它。
编辑:确实start /min
会短暂地窃取焦点,但它可以在我的计算机上工作,使用.cmd
调用新命令行窗口的批处理文件(使用 cmd.exe)。
我的批处理文件如下所示:
@echo off
cls
start /min C:\Users\Randolph\Desktop\shortcut.lnk
快捷方式本身会打开cmd.exe
并选择默认选项,但它会最小化打开(选项Run:
设置为Minimized
)。
答案3
此语法允许 start /min 想法发挥作用:
%comspec% /c start "" /min "C:\Scripts\Destination_inbound_ftp5.bat"