Italian [B4J] Come fare per 'essere avvertiti' che un eseguibile in esecuzione si e' spento?

amorosik

Expert
Licensed User
Dispongo di un programma realizzato in B4J che rimane in attesa di comunicazioni provenienti dall'esterno
Onde evitare che, per qualsiasi motivo, questo programma non sia in esecuzione, lo controllo con un secondo programma, che chiameremo 'Guardian'
Il Guardian in sostanza non fa altro che interrogare Windows e farsi dire tutti i processi attivi
Se fra quelli attivi NON c'e' il programma principale, allora il Guardian lo avvia
Ora, questo controllo viene fatto ogni 10 secondi, e si potrebbe pure diminuire a tempi tipo 1 secondo
Certo che, controllare h24 per 3600 volte ogni ora se un programma e' attivo, mi vien come un 'burp' come un conato di vomito
Capisco le obiezioni che porrete, ma non fatelo, non ponetele
Possibile che non ci sia una funzione che 'mi avvisi' quando un certo programma viene spento?
Come passare dalla programmazione procedurale agli eventi, prima vado a interrogare a raffica, poi attendo in panciolle che mi arrivi l'avviso
Passiamo oltre al 'se si puo fare'
Come si fa'?
 

giannimaione

Well-Known Member
Licensed User
Longtime User
e chi controlla GUARDIAN nel caso si interrompe?

non sono esperto del so windows, ma dovresti verificare la funzionalità "servizi" ...
 

MarcoRome

Expert
Licensed User
Longtime User
Vedi esegue controlli ogni 5 secondi ( ovviamente da sistemare per le tue esigenze )


[USER=88967]@echo[/USER] off start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" goto :checkloop :checkloop tasklist|find "firefox.exe" > NUL if %ERRORLEVEL% == 0 ( call :fullscreen exit ) else ( call :timeout goto :checkloop ) :fullscreen nircmd sendkeypress F11 goto :EOF :timeout timeout /t 5 goto :EOF
 
D

Deleted member 103

Guest
Dispongo di un programma realizzato in B4J che rimane in attesa di comunicazioni provenienti dall'esterno
Onde evitare che, per qualsiasi motivo, questo programma non sia in esecuzione, lo controllo con un secondo programma, che chiameremo 'Guardian'
Il Guardian in sostanza non fa altro che interrogare Windows e farsi dire tutti i processi attivi
Se fra quelli attivi NON c'e' il programma principale, allora il Guardian lo avvia
Ora, questo controllo viene fatto ogni 10 secondi, e si potrebbe pure diminuire a tempi tipo 1 secondo
Certo che, controllare h24 per 3600 volte ogni ora se un programma e' attivo, mi vien come un 'burp' come un conato di vomito
Capisco le obiezioni che porrete, ma non fatelo, non ponetele
Possibile che non ci sia una funzione che 'mi avvisi' quando un certo programma viene spento?
Come passare dalla programmazione procedurale agli eventi, prima vado a interrogare a raffica, poi attendo in panciolle che mi arrivi l'avviso
Passiamo oltre al 'se si puo fare'
Come si fa'?
Fai eseguire il tuo programma da Windows con "Windows task scheduling", in modo che se si interrompe venga attivato automaticamente da Windows.

 
Last edited by a moderator:

MarcoRome

Expert
Licensed User
Longtime User

amorosik

Expert
Licensed User
Vedi esegue controlli ogni 5 secondi ( ovviamente da sistemare per le tue esigenze )



[USER=88967]@echo[/USER] off start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" goto :checkloop :checkloop tasklist|find "firefox.exe" > NUL if %ERRORLEVEL% == 0 ( call :fullscreen exit ) else ( call :timeout goto :checkloop ) :fullscreen nircmd sendkeypress F11 goto :EOF :timeout timeout /t 5 goto :EOF


Si, ringrazio per il suggerimento, me e' il polling che volevo evitare
Volevo capire se esistesse una soluzione per 'essere avvertiti' senza 'interrogare' continuamente
 

amorosik

Expert
Licensed User
Fai eseguire il tuo programma da Windows con "Windows task scheduling", in modo che se si interrompe venga attivato automaticamente da Windows.


Si, questa dovrebbe essre quella che fa' al caso mio
Very grassie

Che poi vedo c'e' un "run whether user is logged or not" il che fa presuppore che un programma sia avviabile anche PRIMA del login utente
Anche senza essere un servizio
E questa era una cosa che stavo cercando per altri motivi
Due fagioli con una capra
(non so se si dica proprio cosi)
 
D

Deleted member 103

Guest
Che poi vedo c'e' un "run whether user is logged or not"
Infatti con questa opzione puoi far eseguire il programma senza che un utente sia loggato.
L'importante è che il programm usi le credenziali dell'admin.
 

Star-Dust

Expert
Licensed User
Longtime User
io di solito chiedo la gentilezza al mio vicino. Se si spegne la luce del cortile lui mi avvisa con una telefonata
 
Last edited:
Top