Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Esegui programma solo se il software XYZ è in esecuzione

Hai problemi con i file Zip, vuoi formattare l'HD, non sai come funziona FireFox? O magari ti serve proprio quel programmino di cui non ricordi il nome! Ecco il forum dove poter risolvere i tuoi problemi.

Moderatori: Dylan666, hydra, gahan

Esegui programma solo se il software XYZ è in esecuzione

Postdi Dylan666 » 10/02/05 00:34

Mi servirebbe un programma che lanci un certo EXE solo se un'altro in particolare è già in esecusione.

Altra esigenza simile è lanciare un'applicazione solo se il PC è già connesso a internet.

Esiste un freeware o c'è modo per ottenere questo con un file batch?
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Sponsor
 

Postdi Dylan666 » 10/02/05 02:42

Qui ho trovato risposte interessanti:
http://www.msfn.org/board/index.php?showtopic=37978

Quella che più mi ha colpito è pv.exe un command-line tool incluso nel kit del Process Viewer.

Facciamo finta che voglia controllare se il paint.exe è in esecuzione: come creo il bat seguendo le istruzioni?

pv.exe can be easealy executed from a batch file to check if process is running.
When writing a command file please note that the ERRORLEVEL number specifies
a true condition if the last program run returned an exit code equal to or
_greater_ than the number specified.

The following script illustrates how this could be done:

@echo off
pv.exe %1 >nul
if ERRORLEVEL 1 goto Process_NotFound
:Process_Found
echo Process %1 is running
goto END
:Process_NotFound
echo Process %1 is not running
goto END
:END

Please note that redirecting standard errors by using 2>file_name does not work under 9x
Windows. Please use "2>file_name" instead. This notation will be processed by pv.exe


Io ho provato questo, ma non va, escesempre l'echo del processo in esecuzione:

Codice: Seleziona tutto
@echo off
pv.exe paint.exe > nul
if ERRORLEVEL 1 goto Process_NotFound
:Process_Found
echo Processo in esecuzione CHE BELLO!
goto END
:Process_NotFound
echo Processo NON in esecuzione
goto END
:END



Le istruzioni complete sonoqui
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi Triumph Of Steel » 10/02/05 08:38

che strano, io ho provato e mi funziona alla grande..


Codice: Seleziona tutto
@echo off
pv.exe %1 >nul
if ERRORLEVEL 1 goto Process_NotFound
:Process_Found
echo Process %1 is running
goto END
:Process_NotFound
echo Process %1 is not running
goto END
:END


salvato come "test.bat" e lanciato poi da PROMPT

c:\>test explorer.exe
Process explorer.exe is running

C:\>test mspaint.exe
pv: No matching processes found
Process mspaint.exe is not running

-- e dopo aver lanciato paint
C:\>test mspaint.exe
Process mspaint.exe is running

forse non devi mettere il nome del file nel batch, ma usare la variabile e richiamarla da fuori, quando lanci il batch..
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi Dylan666 » 10/02/05 13:31

Hai possibilità di provare su un 9x o ME? Io anche se scrivo "test caccola" me lo dà running...
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi BianConiglio » 10/02/05 15:18

io ho scritto dei programmi simili in C se ti interessa fammi avere le specifiche in msn o icq.. dopo il 18 di sto mese posso lavorarci..
BianConiglio
Utente Senior
 
Post: 4710
Iscritto il: 26/12/01 01:00
Località: Varese / Lugano

Postdi Dylan666 » 10/02/05 19:07

Please note that redirecting standard errors by using 2>file_name does not work under 9x
Windows. Please use "2>file_name" instead. This notation will be processed by pv.exe


Può avere a che fare col mio errore su win ME
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi pjfry » 10/02/05 21:58

parla dello standard error, tu usi solo lo standard output credo
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi Dylan666 » 10/02/05 23:14

Io ho provato su due ME, stesso errore. Se qualcun'altro me lo conferma starei più tranquillo.
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi pjfry » 10/02/05 23:26

Dylan666 ha scritto:
Please note that redirecting standard errors by using 2>file_name does not work under 9x
Windows. Please use "2>file_name" instead. This notation will be processed by pv.exe


Può avere a che fare col mio errore su win ME

prima pensavo di no, ma non sapevo cosa fosse "ERRORLEVEL"
ho letto questo, http://www.robvanderwoude.com/index.html , e forse c'entra qualcosa anche con lo stderr quindi potrebbe, boh!?
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi Dylan666 » 10/02/05 23:53

Prova su un terzo PC con Windows 98, stesso risultato sballato.
Il bello è che se lancio solo il programma dice giustamente se il processo è in esecuzione o no. Il brutto è che il risultato non passa all'ERRORLEVEL e quindi non parte l'operazione giusta...

Chi mi aggiusta il file bat per win 9X/ME ? :(
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi Triumph Of Steel » 11/02/05 08:33

mhmh prova a mettere

IF ERRORLEVEL == 1
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi Dylan666 » 11/02/05 12:58

Bell'idea ma purtroppo non va :neutral:
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi BianConiglio » 11/02/05 13:10

batch script sucks!

dimmi quale exe deve essere controllato e quale deve venire eseguito..

e quale exe deve essere eseguito solo se connesso..

oppure lo vuoi ad argomenti dinamici a linea di comando?

fammi sapere che oggi o domani te lo faccio in binario :p
BianConiglio
Utente Senior
 
Post: 4710
Iscritto il: 26/12/01 01:00
Località: Varese / Lugano

Postdi Dylan666 » 11/02/05 13:15

Per ora mi vorrei ostinare a far funzionare questo di programma, che è flessibile, ha molte opzioni e lo potrei utilizzare con qualunque EXE ;)
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi Dylan666 » 13/02/05 21:18

Nessuna idea su come riscrivere il bat? :roll:
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi pjfry » 13/02/05 21:49

controlla se su winME c'è il comando FIND, se c'è forse si può fare qualcosa :roll:
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi Dylan666 » 13/02/05 21:54

Sì, c'è.
Ma per il mio bat non si può fare proprio nulla? :(
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi pjfry » 13/02/05 22:01

basta cambiarlo completamente usando il find :D
praticamente si potrebbe ridirigere l'output di pv su find /c e sfruttare l'output di find per sapere se il processo gira o no :undecided:
ho visto un batch che faceva una cosa del genere una volta, chissà dov'è :undecided:
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi BianConiglio » 14/02/05 00:23

continuo a dirvi che con 30 righe di codice SERIO si crea un programma completamente dinamico :D
BianConiglio
Utente Senior
 
Post: 4710
Iscritto il: 26/12/01 01:00
Località: Varese / Lugano

Postdi Dylan666 » 14/02/05 00:28

Sai scivere 30 righe di codice serio e non aggiustarne 10 di BAT :P Scherzo! :lol:
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Prossimo

Torna a Software Windows


Topic correlati a "Esegui programma solo se il software XYZ è in esecuzione":


Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti