PDA

View Full Version : Interrogare lo stato di un servizio


Fabolus
22-05-2008, 22:05
Ciao a tutti,
come si puo' interrogare un servizio per sapere se e' attivo o stoppato ed eventualmente applicare una condizione?

es. if sc.exe tvservice = "stop" then start tvservice.

Spero di essermi spiegato.

Grazie.

VendeR
22-05-2008, 22:51
a dire il vero non ti sei spiegato molto bene, ( soprattutto non dici in quale linguaggio vuoi realizzare una cosa del genere), comunque per realizzare una funzione di quel tipo leggiti per bene il funzionamento del Service Control Manager (un'ottima fonte in questi casi come sempre è il microsoft developer network, però tutto il codice di esempio è in c/c++): in pratica è un database che tu interroghi per conoscere lo stato di un servizio e per modificarlo (ci penserà poi lui a comunicarlo al servizio). Poi dovrai verificare che il servizio si comporti di conseguenza, ma questi poi sono problemi successivi.
se hai altri dubbi chiedi pure, ciauz:)

Fabolus
22-05-2008, 22:59
Grazie Vender della risposta,
a dire il vero intendevo fare un semplice batch, utilizzando i comandi net.exe e sc.exe.
L'unica esperienza di programmazione che ho risale al basic dei Vic 20, qualche secolo fa:rolleyes:

Vorrei semplicemente riavviare un servizio di windows solo nel caso che non sia gia' avviato, tutto li'.

marco.r
23-05-2008, 00:33
un po' spartano ma dovrebbe essere quel che ti serve

set SVCNAME="Ora di Windows"
net start | find %SVCNAME%
if ERRORLEVEL==1 net start %SVCNAME%

ovviamente in SVCNAME metti il servizio che ti serve.

Fabolus
23-05-2008, 14:16
Grande Marco,
funziona benissimo.

Grazie.;)


un po' spartano ma dovrebbe essere quel che ti serve

set SVCNAME="Ora di Windows"
net start | find %SVCNAME%
if ERRORLEVEL==1 net start %SVCNAME%

ovviamente in SVCNAME metti il servizio che ti serve.

VendeR
23-05-2008, 20:45
Grazie Vender della risposta,
a dire il vero intendevo fare un semplice batch, utilizzando i comandi net.exe e sc.exe.
L'unica esperienza di programmazione che ho risale al basic dei Vic 20, qualche secolo fa:rolleyes:

Vorrei semplicemente riavviare un servizio di windows solo nel caso che non sia gia' avviato, tutto li'.

ah ok scusa ho frainteso io allora :D
ed hai anche già risolto tutto.. meglio di così!
cmq se ti serve il corrispettivo di net start per fermare un servizio è net stop.. così puoi gestirli alla grande!
ed in effetti è ben più semplice che con un linguaggio di programmazione vero e proprio.. mica male!
ciauz