|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2008
Messaggi: 308
|
[WINDOWS non .NET] controllare se un servizio è installato
Ciao a tutti. Come posso verificare se un servizio è stato installato? Mi servirebbe un programmino che mi restituisca true o false (oppure 0 o 1) a seconda se il nome di un servizio passato in input è presente tra i servizi installati. Questo programmino non deve essere scritto utilizzando .NET
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Puoi sfruttare la tecnologia WMI o interagire direttamente con il Service Control Manager.
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Aug 2008
Messaggi: 308
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Cerca la documentazione relativa alle 2 tecniche, troverai anche una marea di esempi... L'interazione con SCM non richiede prerequisiti particolari (basta invocare le funzioni nel modo corretto), per controllare i servizi tramite WMI fai riferimento a Win32_ServiceControl Class e Win32_Service Class.
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Aug 2008
Messaggi: 308
|
Quote:
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Oppure se sai lanciare una command line (al limite anche un file Batch)
puoi vedere se riesci a parsare il risultato di SC QUERY oppure, se sai il nome del servizio da controllare (almeno quello, spero) SC QUERY Spooler
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Aug 2008
Messaggi: 308
|
Grazie lo stesso ragazzi, ho scoperto che SCM inserisce qui
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services tutte le info sui servizi installati |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Questo codice da la lista dei servizi trovati nel sistema + il loro attuale stato. Tutto ciò che serve è un pulsante ( cmd_listaservizi ) e una ListBox ( List1 ) : Codice:
Private Sub cmd_listaservizi_Click()
Dim servizi As Object
Dim servizio As Object
Dim stato As String
Set servizi = GetObject("winmgmts:").ExecQuery("SELECT Name from Win32_Service")
For Each servizio In servizi
Dim shellApp As Object
Set shellApp = CreateObject("Shell.Application")
If shellApp.IsServiceRunning(servizio.Name) = True Then
stato = "Servizio Attivo"
Else
stato = "Servizio Non Attivo"
End If
List1.AddItem (servizio.Name) & " - Stato : " & stato
Set shellApp = Nothing
Next
Set servizio = Nothing
Set servizi = Nothing
End Sub
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:59.




















