Algo para tentar:
- Renomeie o EXE do App_B para algo diferente (por exemplo:
App_B_2.exe
). - Crie um arquivo em lotes que verifique o processo do App_A na memória, se encontrar, exibe aviso e pedir confirmação .
-
Se eles confirmarem , inicie
App_B_2.exe
(você provavelmente desejará incluir alguns titulares de espaços de argumento e, em seguida, transmiti-los ao iniciar oApp_B_2.exe
). Se eles negarem, saia do arquivo em lote. - Converta o lote para um EXE .
- Renomeie o EXE convertido para
App_B.exe
e coloque-o na pasta do aplicativo que o App_2.exe geralmente reside.
Exemplo de arquivo em lote (obviamente não testado;)):
@echo off
REM Check for process
tasklist /fi "Imagename eq App_A.exe" 2>NUL | find /i /n "App_A.exe">NUL
REM If it isn't found (errorlevel > 0) launch App_B
if %ERRORLEVEL% GTR 0 goto LaunchB
REM Otherwise (errorlevel 0) it's been found, so ask for confirmation...
choice /C YN /M "App_A is running, continue launching App_B?"
if %ERRORLEVEL% EQU 1 goto LaunchB
if %ERRORLEVEL% GTR 1 exit
:LaunchB
App_B2.exe %1 %2 %3 %4 %5