:checknotresponding
tasklist /fi "STATUS eq NOT RESPONDING"|find "%ProgrammExe%">nul
if %errorlevel% equ 0 goto :notrespond
goto :eof
:notrespond
echo %time% Checking not responding again in 30 sec...wait...
ping -n 30 localhost >nul
tasklist /fi "STATUS eq NOT RESPONDING"|find "%ProgrammExe%">nul
if %errorlevel% neq 0 goto :eof
echo %date% %time% Reported freeze or not respond
echo %date% %time% Reported freeze or not respond >> %logfilename%
echo ========== >> %logfilename%
taskkill.exe /f /fi "STATUS eq NOT RESPONDING" /fi "IMAGENAME eq %ProgrammExe%"
goto :eof