![任务计划程序在后台启动 OpenWith.exe,而不是默认关联应用程序](https://linux22.com/image/691112/%E4%BB%BB%E5%8A%A1%E8%AE%A1%E5%88%92%E7%A8%8B%E5%BA%8F%E5%9C%A8%E5%90%8E%E5%8F%B0%E5%90%AF%E5%8A%A8%20OpenWith.exe%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E9%BB%98%E8%AE%A4%E5%85%B3%E8%81%94%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
我有一个自定义类型 .acust,它与一个自制应用程序相关联。只要它是“仅在用户登录时运行”,调度就可以正常工作,但不能作为“无论用户是否登录都运行”的服务工作。
一个明显的解决方法是,不运行 .acust 文件,而是使用应用程序触发任务并传递 xxxx.acust 参数,但我仍然希望在任务作为服务运行时使关联工作。这可能吗?
至少在 Windows Server 2012 和 Windows 10 中会出现此问题。Windows 2008 上没有出现此问题
答案1
不,不可能将不可执行文件作为服务运行,因为它应该与服务管理器交互,提供其状态等。
但是您仍然可以通过将 .acust 脚本的文件名传递给程序可执行文件来实现您的需要。
你实际上不能使用“任务计划程序”来创建服务,因此你需要下载 NSSM - 非吸吮服务管理器。将可执行文件解压到安全的地方(我建议将其解压到 c:\Windows),因为该文件将启动新服务。之后发出以下命令(假设nssm.exe
在系统 PATH 中)nssm install RunAcust
(这将打开一个 nssm 窗口),您可以在其中指定所需的一切)。