Newsgroup: it.comp.programmare.win32
Titolo: chiudere applicazione se...

Vorrei scrivere due righe di codice che mi permettano di chiudere una
appilicazione; provo a spiegarmi:
con un file .bat lancio 3 applicazioni distinte,
(non è necessario che sia un file .bat, se posso scrivere una
applicazione numero3 che lancia numero1 e numero2 e lanciare solo
quella va bene ugualmente)
start numero1
start numero2
start numero3
la numero3 è quella che devo scrivere;
Questa applicazione (numero3) deve controllare periodicamente (diciamo
ogni 2 minuti) se l'applicazione numero1 (Outlook Express) è aperta,
se lo è non deve fare niente, se invece è chiusa (non in esecuzione)
deve chiudere
l'applicazione numero2 e uscire (chiudere se stessa).
E' possibile realizzare qualcosa del genere? Mi dareste una mano?
Grazie
P.S. L'applicazione può essere scritta in un linguaggio qualunque
anche con i comandi DOS purché funzioni come richiesto.

 l'applicazione numero2 e uscire (chiudere se stessa).
vado a memoria (non ho nemmeno il compilatore qui...):
HWND h;
while((h=FindWindow("Outlook Express Browser Class",NULL))!=NULL)
Sleep(10000);
ChiudiApplicazione();
return 0;
ciao
f.

Mjk wrote:
<snip>
Perché non provi a spiegare esattamente quello che
devi fare, magari esiste una soluzione piu' pratica?
Ciao,
Andrea

...

Allora:
ho un programmino (liberopop) che deve andare in esecuzione prima di
outlook express; poiché tale programma si mette in memoria (compare
una icona in basso a dx sulla barra delle applicazioni) una volta
avviato, vorrei fare in modo di avviare i programmi liberopop e
outlook express insieme; quando poi clicco sulla X di outlook express
dovrebbe chiudersi anche liberopop (che sta a fare aperto?); non ho
scritto io liberopop e quindi non posso aggiungengli una riga che
faccia questo controllo, pensavo allora di scrivere magari un file
eseguibile o un batch o una qualunque altra cosa che potesse fare
questo.
Grazie

...

Perdona l'ignoranza ... ma dove dovrei mettere questi comandi?

Mjk wrote:
<snip>
Messa cosě, diventa molto piu' facile:
Dunque, crea una nuova applicazione, poi mettici un bottone.
Nel codice del bottone, fai due chiamate a CreateProcess( una per OE ed una
per
LiberoPOP ): nei dati di ritorno avrai un ProcessID. Usa WaitForSingleObject
con il
PID di OE e quando ritorna la funzione semplicemente chiudi le due finestre
chiamando
TerminateProcess con i due PID( uno alla volta perň ).
Finita l'applicazione.
Andrea

 ha scritto nel messaggio
news:bpl9bm$1pu18t$1...@ID-170738.news.uni-berlin.de...

usare TerminateProcess mi sembra un po' troppo "aggressivo", forse č meglio
mandare un messaggio WM_CLOSE alla finestra dell'applicazione, dopo averne
ottenuto l'handle con FindWindow
-- 
Pela

 Perdona l'ignoranza ... ma dove dovrei mettere questi comandi?
Che domande: č il tuo programma, no?
Scrivilo con un IDE, compilalo con un compilatore C/C++ e mettilo nel tuo
file di bacth.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 >Finita l'applicazione.
Tutto qui? Pensavo ci fosse un modo più complicato! Scherzo, capisco
che per voi sia una richiesta stupida, ma io non so nemmeno da dove
cominciare!

 Come creo una nuova applicazione?
Fai così: scarica da Internet un programma che si chiama DevC++, poi apri
un nuovo progetto, scrivi il codice che ti ha detto root, e fai andare il
programma.
Se il programma non va è perché il compilatore (cioè quella parte di
DevC++ che interpreta il tuo codice e lo traduce in un file eseguibile) ha
dato degli errori (root non si ricordava la sintassi esatta, è andato a
memoria); in tal caso ritorna su questo NG.
A proposito: l'applicazione scritta da root è priva di interfaccia, va in
background, quindi potresti avere difficoltà a capire se il programma si è
effettivamente avviato quando lo fai anader da DevC++; nn mi ricordo com'è
l'interfaccia di DevC++, ma in genere i tools di sviluppo hanno una
finestra in basso dove il compilatore mostra una sfilza di messaggi che ti
fanno capire come è andata la compilazione e se ci sono stati degli errori
o dei warnings, cioè degli avvisi circa del codice che potrebbe dare
errore (non credo che ci saranno warnings in questo caso...).
ciao


 praticamente niente:
Allora dimentica tutto quello che ti ho detto <g>.
Andrea