我有一台无头电脑,有时当我关机时,程序会卡在拒绝终止的关闭对话框中。不幸的是,VNC 服务已经停止,这意味着我必须连接键盘/鼠标或使用 RDP 进行连接。
有没有办法让 VNC 服务在关机过程稍后停止?
答案1
这需要一些实验、反复试验,但您可以使当前延迟关闭的服务依赖于 vnc。这意味着 vnc 无法关闭,直到该其他服务停止。
也许工作站进程是一个很好的目标。让它依赖于 vnc,那么 vnc 就不会关闭,直到工作站关闭,并且希望工作站不会关闭,除非桌面应用程序正常关闭。
请注意,这也意味着在工作站启动之前,vnc 不会启动。如果您需要在启动和关闭时使用不同的顺序,您可以使用 sc.exe 命令在启动后更改依赖项。
这里是如何设置与服务的依赖关系。
答案2
先关闭?我在 XP 中使用了一个叫做 ClosingTime 的小工具,在 7 中也可用。我通常只关闭资源管理器窗口(如果我不关闭它们,它们会返回)。它也可以设置为关闭任何其他东西。它是一个普通程序,你用文本编辑要关闭的所有程序的配置,然后保存配置。点击快捷方式,它会尝试关闭它们。
我怀疑还有其他非常小但很有用的同类工具,它们会通过向窗口发送 ALT [F4] 来批量关闭。这里的想法是手动启动,这样更安全。
在 XP 中,还有 HungAppTimeout 和 ServicesTimeout 注册表设置,可在调整站点上找到,这些可以设置为等待系统强制关闭它们的毫秒数,即使保存请求程序已打开 :-O 。如果您将 VNC 作为服务运行,则只需确保服务时间长于应用程序时间。警告:当服务很容易关闭时,缩短应用程序时间只会导致问题,导致应用程序过快关闭。
autoHotkey?使用其中的脚本来定位窗口,并在启动关机之前告诉它们退出。需要用户编写一些脚本。
常规任务终止,使用 Windows 任务终止程序 cmd 应用程序或 PE 可执行文件,您可以按任意顺序批量执行有序关机。这些批处理项目同时具有询问和强制选项,因此您可以先询问,然后再批量终止 :-) 。还可以将关机添加到批处理的末尾以完成。
当然,任何强制方法都不会允许程序完成,并且可以在写入或等待用户响应时终止它。所以呢?我想我会建议先关闭并询问,就像手动启动一样,然后在关闭时施加强制。在写入磁盘时终止程序可能会导致磁盘损坏。
呃,如果这些方法对你有用,我可能会花更多时间把它们写出来。