我需要运行两个程序。一个程序在执行过程中依赖另一个程序获取信息。因此,我需要确保第一个程序在第二个程序运行之前启动。此外,我需要在我登录的整个过程中运行这两个程序。
我最初以为我可以使用 Windows 服务来实现这一点。服务允许我指定依赖项,但它会阻止程序运行,因为它们都有用户界面。还有其他方法可以实现这一点吗?我现在正在使用批处理脚本,但这几乎不是一种很好的方法,因为它只在我登录时调用程序,而不会在程序崩溃时调用。
我也无法重新编译/编辑程序来让它们与服务对话。
这些程序仅在用户登录后启动是可以的。如果用户尚未登录,我不需要它们运行。
答案1
我会使用 .bat 文件或类似文件来执行此操作(尽管您不喜欢它,但请继续阅读:))。
获取批处理文件,首先检查程序是否正在运行,如果没有,则加载!
@echo off
tasklist /FI "IMAGENAME eq dependantProgram.exe" | find /i "dependantProgram.exe"
IF ERRORLEVEL 1 start "" "C:\Program Files\dependantProgram.exe"
tasklist /FI "IMAGENAME eq myProgram.exe" | find /i "myProgram.exe"
IF ERRORLEVEL 1 start "" "C:\Program Files\dependantProgram.exe"
现在,让任务计划程序在用户登录时运行此程序,并每 X 分钟执行一次。