Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Bat che chiude un programma se esso è in esecuzione

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

Bat che chiude un programma se esso è in esecuzione

Postdi Paolo87 » 02/10/08 10:39

Allora,innanzitutto ciao a tutti. Poi ho visto col cerca delle cose che mi sono state utili ma non del tutto. Io ho trovato questo codice da questo forum

Codice: Seleziona tutto
@ECHO OFF
START notepad.exe
:RETEST
TASKLIST | FIND "notepad.exe"
IF NOT ERRORLEVEL== 1 GOTO RETEST
shutdown -s -t 36000
PAUSE


Come lo adatto per far si che appena trovi un programma in esecuzione lo chiuda ?!
Io ho pensato così :

Codice: Seleziona tutto
@ECHO OFF
TASKLIST | FIND "notepad.exe"
IF NOT ERRORLEVEL== 1 GOTO
kill notepad.exe
PAUSE


Ma cosa sbaglio?! E' possibile far si che il programma controlli ogni tot minuti un determinato processo e se è aperto lo chiuda?!
Paolo87
Utente Senior
 
Post: 305
Iscritto il: 26/08/07 09:54
Località: Roma

Sponsor
 

Re: Bat che chiude un programma se esso è in esecuzione

Postdi hydra » 02/10/08 12:02

Non so se col batch lo puoi fare. Io mi sono scritto un servizio in C# che controlla se una determinata applicazione è in esecuzione o meno, in caso contrario spegne il pc.
Avatar utente
hydra
Moderatore
 
Post: 7002
Iscritto il: 19/07/04 08:06
Località: Vallis Duplavis

Re: Bat che chiude un programma se esso è in esecuzione

Postdi hydra » 02/10/08 12:06

In ogni caso un processo non lo termini con kill. Prova con net stop processo.
Avatar utente
hydra
Moderatore
 
Post: 7002
Iscritto il: 19/07/04 08:06
Località: Vallis Duplavis

Re: Bat che chiude un programma se esso è in esecuzione

Postdi Paolo87 » 02/10/08 13:04

OK provo con net stop e di dirò..... No non mi va.... Mi passi il tuo servizio C#. magari funge
Paolo87
Utente Senior
 
Post: 305
Iscritto il: 26/08/07 09:54
Località: Roma

Re: Bat che chiude un programma se esso è in esecuzione

Postdi hydra » 02/10/08 13:14

Ti posso postare il codice che al limite puoi modificare, il servizio funziona solamente per una determinata applicazione e compie operazioni specifiche, quindi non va bene per la tua necessità.
Avatar utente
hydra
Moderatore
 
Post: 7002
Iscritto il: 19/07/04 08:06
Località: Vallis Duplavis

Re: Bat che chiude un programma se esso è in esecuzione

Postdi Paolo87 » 02/10/08 13:17

ok,allora postami solo il codice relativo a trovare quel processo e quello che fa dopo. Magari commentami un po il codice. Così me lo modifico per me. Grazie mille :)
Paolo87
Utente Senior
 
Post: 305
Iscritto il: 26/08/07 09:54
Località: Roma

Re: Bat che chiude un programma se esso è in esecuzione

Postdi hydra » 02/10/08 13:42

Beh, innanzitutto devi mettere un timer (oppure istanziarlo da codice).
Nell'evento OnStart del servizio devi far partire il timer
Codice: Seleziona tutto
timer.Enabled = true;                                                           // Abilita timer


All'interno dell'evento Tick del timer devi mettere il codice che vuoi far eseguire, nel tuo caso
Codice: Seleziona tutto
// Disabilita temporaneamente il timer
timer.Enabled = false;

// Recupera lista processi attivi
Process[] process = Process.GetProcesses();

// Ciclo tra i processi attivi
foreach (Process prc in process)
{
      // Controlla se il processo è quello cercato
      if (prc.ProcessName.ToUpper() == *NOMEPROCESSO*.ToUpper()
      {
          // Termina il processo
          prc.Kill();
          // Break ciclo per uscire appena trovato il processo
          break;
      }
}

// Riabilita il timer
timer.Enabled = true;


Al posto di *NOMEPROCESSO* devi inserire il nome del processo, o come stringa oppure come variabile (che dovrai poi valorizzare in qualche modo)

Devi ricordarti di mettere anche l'using alla classe System.Diagnostic.

Ovviamente tutto questo se sviluppi con c#.
Avatar utente
hydra
Moderatore
 
Post: 7002
Iscritto il: 19/07/04 08:06
Località: Vallis Duplavis

Re: Bat che chiude un programma se esso è in esecuzione

Postdi Paolo87 » 02/10/08 13:49

THX di cuore
Paolo87
Utente Senior
 
Post: 305
Iscritto il: 26/08/07 09:54
Località: Roma

Re: Bat che chiude un programma se esso è in esecuzione

Postdi hydra » 02/10/08 13:53

Comunque su MSDN trovi tutta la documentazione necessaria. E se guardi in rete trovi fior fior di guide su come creare servizi, come installarli...
Avatar utente
hydra
Moderatore
 
Post: 7002
Iscritto il: 19/07/04 08:06
Località: Vallis Duplavis

Re: Bat che chiude un programma se esso è in esecuzione

Postdi Paolo87 » 03/10/08 06:34

Senti hydra,mi faresti la cortesia di darmi il link da dove scaricare C# . thx,ho provato qualche download,ma solo vecchie versione una recente non la trovo.

Grazie ancora
Paolo87
Utente Senior
 
Post: 305
Iscritto il: 26/08/07 09:54
Località: Roma

Re: Bat che chiude un programma se esso è in esecuzione

Postdi hydra » 03/10/08 07:06

Avatar utente
hydra
Moderatore
 
Post: 7002
Iscritto il: 19/07/04 08:06
Località: Vallis Duplavis

Re: Bat che chiude un programma se esso è in esecuzione

Postdi Dylan666 » 06/10/08 23:03

non so se serve ma ho avuto una necessità simile:
viewtopic.php?f=1&t=28037&hilit=batch+programma+esecuzione
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46


Torna a Programmazione


Topic correlati a "Bat che chiude un programma se esso è in esecuzione":


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite