我试图通过用户界面(使用TestStack.White)自动化第三方应用程序。但有时程序冻结,因为它试图在那段时间内加载某些东西,它也处于运行阶段......所以我无法通过检查状态(没有响应/运行)来检测它以便杀死它并重新启动它。但是在那段时间内CPU使用率为零,所以我在考虑可以在该应用程序的CPU使用率为零时对其进行计时,如果为零则让我们说5分钟重新启动应用程序。
注意:应用程序正在Windows Server上运行
提前致谢
答案 0 :(得分:0)
可以使用typeperf实时测量CPU使用率(AFAIK):
@echo off
:check
for /f "delims=, tokens=2 skip=2" %%a in ('^
typeperf "\Process(EXENAME_WITHOUT_EXTENSION)\%% Processor Time" -si 300 -sc 1^
') do (
set cpu=%%~a
goto break
)
:break
if not %cpu:~0,2%==0. goto check
restart_the_process......
EXENAME_WITHOUT_EXTENSION
例如Explorer
-si 300
表示300秒或5分钟