Hello,
I don't know if this is the best solution but I can tell you how would I do it.
1. Identify all the exe files of all your applications and write them in a text file, each exe file on a separate row). This will help you later to maintain the script. Or just add the lines in the same script, will be easier to manage the download to every machine.
2. Create a vbs script which reads the file line by line in a loop, and checks if that exe is running. You will find many examples on how to script that. Below one of them
Dim Process, strObject, strProcess
Const strComputer = "."
strProcess = "OUTLOOK.exe"
IsProcessRunning = False
strObject = "winmgmts://" & strComputer
For Each Process in GetObject( strObject ).InstancesOf( "win32_process" )
If UCase( Process.name ) = UCase( strProcess ) Then
MsgBox "Outlook is running"
End If
Next
3. Make the vbs to exit with 0 if everything is OK or exit with an error code if a process is running.
4. Execute the vbs in a task sequence before the actual installation of the software.
5. Set to fail the task sequence if the execution of vbs fails (exits with anything else than 0)
Hope this helps you.