如何确保两个程序始终运行? (一方取决于另一方。)


0

我需要运行两个程序。一个人在执行过程中依赖于另一个人获取信息。因此,我需要确保在第二次运行之前开始第一次。此外,我需要程序运行我登录的整个时间。

我最初认为我可以用Windows服务做到这一点。服务允许我指定依赖项,但它会阻止程序运行,因为它们都有用户界面。有没有其他方法来实现这一目标。我现在正在使用批处理脚本,这不是一个很好的方法,因为它只在我登录时调用程序,但如果它们崩溃则不会。

我无法重新编译/编辑程序以使它们与服务进行通信。

这些程序只有在用户登录后才能启动。如果用户尚未登录,我不需要它们运行。


1
如果您使用的方法不符合您的要求,您将必须设计自己的程序来验证程序是否正在运行。
Ramhound

Answers:


0

我会使用.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分钟执行一次。


我不反对批处理文件,我只需要压制它。有没有办法让批处理文件在几分钟内调用,而不是调度程序?这比其他任何东西更令人感兴趣。如果程序启动但向用户报告错误消息,这将注册为已关闭的程序吗?或者这取决于应用程序的错误处理。
Carel

只有你把它放入循环中!我猜,但这意味着你总是在屏幕上有命令控制台,这是非常严峻的! :)
Dave

那是令人沮丧的严峻:| (P.。你有多少关于你的姓氏的国际象棋笑话?我的是van Dam所以银行职员让空手道砍掉他们的柜台)
Carel
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.