Well, it's easy enough to chain running of apps if you're OK with batch files. The simple way:
@ECHO OFF
echo Starting Proggy1...
cd "C:\Program Files\Proggy1\"
start /wait proggy1.exe
echo Starting Proggy2 ...
cd "C:\Program Files\Proggy2\"
start proggy2.exe
echo Finished!
exit
To check whether an app is running, use:
tasklist | find "proggy1.exe" > nul
if %ERRORLEVEL%==1 do something
Here's a bit of code from an old script that used altbinz_status.xml to see whether Alt.Binz was downloading:
:check_download_status
Echo %DATE% %TIME:~0,-3% Checking AB download status .......
:check_loop
FOR /f "EOL=- TOKENS=3 DELIMS=<>" %%S IN ('find "<CurrentSpeed>" "C:\Program files\Altbinz\altbinz_status.xml"') DO (echo %date% %TIME:~0,-3% Current Speed: %%S)
find "<ETA>Unknown</ETA>" "C:\Program files\Altbinz\altbinz_status.xml" >nul
if %ERRORLEVEL%==0 goto :disconnect_altbinz
call c:\wait.bat 60
goto :check_loop
... bla blah ...
:shutdown
Echo %DATE% %TIME:~0,-3% Hibernating .......................
%SYSTEMROOT%\System32\rundll32.exe powrprof.dll,SetSuspendState 1,1,0
A lot easier to do with Powershell!