Ho lavorato con il seguente (con diverse applicazioni ovviamente):
@echo off
tasklist /FI "IMAGENAME eq AutoHotkey.exe" | find /i "AutoHotkey.exe"
IF ERRORLEVEL 2 GOTO NEXTPROGRAM
IF ERRORLEVEL 1 GOTO LAUNCHPROGRAM
:NEXTPROGRAM
goto LOLLAUNCHER
:LAUNCHPROGRAM
start "" "C:\Program Files\AutoHotkey\AutoHotkey.exe"
goto LOLLAUNCHER
:LOLLAUNCHER
tasklist /FI "IMAGENAME eq LoLLauncher.exe" | find /i "LoLLauncher.exe"
IF ERRORLEVEL 2 GOTO NEXTPROGRAM2
IF ERRORLEVEL 1 GOTO LAUNCHPROGRAM2
:NEXTPROGRAM2
goto COMPLETE
:LAUNCHPROGRAM2
start "" "C:\Program Files (x86)\League of Legends\lol.launcher.exe"
goto COMPLETE
Ho questo in un file batch che viene eseguito quando un utente accede o sblocca il computer. Quella parte funziona alla grande, tuttavia, devo andare un po 'oltre.
Alla fine questo verrà distribuito su più computer in un banco di volo dell'aeroporto. A causa della natura del loro lavoro, mi stanno dicendo che avrebbero potenzialmente più utenti che utilizzano le stesse 3 applicazioni sullo stesso computer.
Essendo un individuo attento alla sicurezza, sto insegnando loro a utilizzare i singoli accessi in modo da poter tenere traccia di chi sta facendo cosa sui sistemi. Quindi suppongo che la mia domanda sia: come posso modificarlo per verificare il processo in esecuzione in una particolare sessione degli utenti piuttosto che solo sul computer stesso? Il problema è che se un utente ha effettuato l'accesso e ha le sue applicazioni in esecuzione, quindi si allontana, ma un altro utente deve saltare su quella stazione per aiutare un ospite, lo script verrà eseguito, identificando che i processi sono in esecuzione ma poi lo fanno Niente. Devo modificarlo per verificare se il processo è in esecuzione per la sessione di quell'utente. Spero che abbia un senso.