Soyez le premier à donner votre avis sur cette source.
Vue 47 359 fois - Téléchargée 4 214 fois
Dim distant As Boolean 'Savoir si on test a distance Dim serveur As String 'Si oui : le nom du serveur Dim tipe As Boolean 'Process ou service Dim run As Integer 'Nb de services lancés Dim sto As Integer 'Nb de services stoppé Private Sub Check1_Click() If Check1.Value = 1 Then 'Clicke lblserv.Visible = True cmdhelp.Visible = True 'Affiche les options txtserv.Visible = True distant = True 'Oui pour a distance Else lblserv.Visible = False cmdhelp.Visible = False 'Cache txtserv.Visible = False distant = False End If End Sub Private Sub cmdadproc_Click() cd.Filter = "Application (*.exe)|*.exe|" 'Filtre pour la boite de diag ouvrir cd.ShowOpen 'Ouvre la boite de dialogue test = cd.FileName 'Recupere le chemin If test <> "" Then Shell (test) 'Lance le processus End Sub Private Sub cmddelproc_Click() Dim ServiceObject As SWbemObject 'Objet WMI Dim Locator As SWbemLocator 'Objet de connexion Dim services As SWbemServices 'Objet services Set Locator = New SWbemLocator 'Nouvelle insatance d'une connexion 'Verifie si qqc est selectionné dans le listview1 If ListView1.SelectedItem.Selected = False Then MsgBox "Vous devez selectionné un processus", vbCritical: Exit Sub 'Handle du processus proc$ = ListView1.SelectedItem.SubItems(1) 'Index de la ligne selectionné ligne = ListView1.SelectedItem.Index 'Connexion au serveur Set services = Locator.ConnectServer(txtserv.Text) 'Recuperation du processus selectionné Set ServiceObject = services.Get("Win32_Process='" & proc & "'") 'Destruction du processus p = ServiceObject.Terminate 'Le kill a reussi If p <> 0 Then MsgBox "Suppression du process " & ListView1.SelectedItem.Text & "(" & proc & ")" & " impossible", vbCritical 'Le kill a echoué Else: MsgBox "Suppression terminé de " & ListView1.SelectedItem.Text, vbOKOnly + vbInformation End If 'Maj de la liste des processus maj (0) End Sub Private Sub cmdhelp_Click() 'Aide msg = "Permet de tester les services" & vbCrLf & " ou procesus sur un ordinateur distant équipé de WMI" MsgBox msg, vbOKOnly + vbQuestion, "Management" End Sub Private Sub cmdmaj_Click() 'Mise à jour maj (cmdstart.Visible) End Sub Private Sub cmdproc_Click() Dim liste 'Collection de processus Dim element 'Un element de la collection tipe = 0 'Processus 'Affiche les bouton relatfs aux processus , cache les autres cmdstart.Visible = False cmdstop.Visible = False frmserv.Visible = False cmdadproc.Visible = True cmddelproc.Visible = True 'Modification du label de compte lbltest.Caption = "Nb processus" 'Efface la liste ListView1.ListItems.Clear 'Remet les en-têtes ListView1.ColumnHeaders.Item(1) = "Nom" ListView1.ColumnHeaders.Item(2) = "Identifiant" 'Selon le test à distance ou pas Select Case distant Case 1: 'Nom du serveur serveur = txtserv.Text 'Recuperation des processus Set liste = GetObject("winmgmts://" & serveur).InstancesOf("Win32_Process") Case 0: 'Recuperation des processus Set liste = GetObject("winmgmts:").InstancesOf("Win32_Process") End Select For Each element In liste 'Insertion dans la listview Set Item = ListView1.ListItems.Add(, , element.Name) Item.SubItems(1) = element.Handle Item.SubItems(2) = element.VirtualSize Next element maj (tipe) End Sub Private Sub cmdserv_Click() Dim objcol 'Collection de service tipe = 1 'SErvice 'Affichage des boutons relatifs aux services cache des autres cmdstart.Visible = True cmdstop.Visible = True frmserv.Visible = True cmdadproc.Visible = False cmddelproc.Visible = False 'Mise a jour du label de comptage lbltest.Caption = "Nb Services" 'Efface la liste ListView1.ListItems.Clear 'En tete des colonne ListView1.ColumnHeaders.Item(1) = "Nom" ListView1.ColumnHeaders.Item(2) = "Etat" ListView1.ColumnHeaders.Item(3) = "Description" 'Selon cas a distance ou pas Select Case distant Case 1: 'Nom du serveur serveur = txtserv.Text 'Recuperation a distance des services Set objcol = GetObject("WinMgmts://" & serveur & "/root/cimv2").InstancesOf("Win32_service") Case 0: 'Recuperation en local des services Set objcol = GetObject("WinMgmts:").InstancesOf("Win32_service") End Select For Each element In objcol 'Insertion des services dans la listview Set Item = ListView1.ListItems.Add(, , element.Name) Item.SubItems(2) = element.Description Item.SubItems(1) = element.state Next element 'Mise a jour maj (tipe) End Sub Private Sub cmdstart_Click() Dim ServiceObject As SWbemObject 'Objet WMI Dim Locator As SWbemLocator 'Objet de connexion Dim services As SWbemServices 'objet service Set Locator = New SWbemLocator 'Nouvelle instance de connexion 'Verifie que qqc est selectionné If ListView1.SelectedItem.Selected = False Then MsgBox "Vous devez selectionné un service", vbCritical: Exit Sub 'Recupere la selection service$ = ListView1.SelectedItem.Text ligne = ListView1.SelectedItem.Index 'REgarde si il n'est pas deja lancé If ListView1.SelectedItem.SubItems(1) = "Running" Then MsgBox "Le service est dejà demarré" Exit Sub Else 'SE connecte Set services = Locator.ConnectServer(txtserv.Text) 'Recupere le service Set ServiceObject = services.Get("Win32_Service='" & service & "'") 'Le demarre ServiceObject.StartService End If 'Mise a jour maj (cmdstop.Visible) End Sub Private Sub cmdstop_Click() Dim ServiceObject As SWbemObject Dim Locator As SWbemLocator Dim services As SWbemServices Set Locator = New SWbemLocator If ListView1.SelectedItem.Selected = False Then MsgBox "Vous devez selectionné un service", vbCritical: Exit Sub service$ = ListView1.SelectedItem.Text ligne = ListView1.SelectedItem.Index If ListView1.SelectedItem.SubItems(1) = "Stopped" Then MsgBox "Le service est dejà stoppé" Exit Sub Else On Error GoTo error Set services = Locator.ConnectServer(txtserv.Text) Set ServiceObject = services.Get("Win32_Service='" & service & "'") 'L'arrete ServiceObject.Stopservice error: MsgBox "Le service n'a pu etre stoppé" End If maj (cmdstop.Visible) End Sub Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ColumnHeader) ' Quand vous cliquez sur un objet ColumnHeader, le contrôle ' ListView trie selon les sous-éléments de cette colonne. ' Affecte à la propriété SortKey l'index de ColumnHeader - 1 ListView1.SortKey = ColumnHeader.Index - 1 ' Affecte à la propriété Sorted la valeur True afin de trier la ' liste. ListView1.Sorted = True End Sub Private Sub maj(tipe As Boolean) 'Efface la list ListView1.ListItems.Clear run = 0 'Met a 0 le compteur de service lancé sto = 0 'Idem pour les services stoppés compte = 0 'Compte les processus et services Select Case tipe Case 0: 'On met a jour les processus Select Case distant Case 1: serveur = txtserv.Text Set liste = GetObject("winmgmts://" & serveur).InstancesOf("Win32_Process") Case 0: Set liste = GetObject("winmgmts:").InstancesOf("Win32_Process") End Select For Each element In liste Set Item = ListView1.ListItems.Add(, , element.Name) Item.SubItems(1) = element.Handle Item.SubItems(2) = element.VirtualSize compte = compte + 1 lblcompte.Caption = compte DoEvents Next element Case 1: Select Case distant Case 1: serveur = txtserv.Text Set objcol = GetObject("WinMgmts://" & serveur & "/root/cimv2").InstancesOf("Win32_service") Case 0: Set objcol = GetObject("WinMgmts:").InstancesOf("Win32_service") End Select For Each element In objcol Set Item = ListView1.ListItems.Add(, , element.Name) Item.SubItems(2) = element.Description Item.SubItems(1) = element.state If element.state = "Running" Then run = run + 1 Else: sto = sto + 1 End If compte = compte + 1 lblarr.Caption = "Arretés : " & sto lbldem.Caption = "Demarrés : " & run lblcompte.Caption = compte DoEvents Next element End Select 'lblcompte.Caption = ListView1.ListItems.Count End Sub Private Sub ListView1_DblClick() MsgBox ListView1.SelectedItem.Text & " " & ListView1.SelectedItem.SubItems(1) End Sub
7 juin 2007 à 20:45
7 juin 2007 à 20:43
"winmgmts://EZ-NET/SERVEUR"
15 mars 2007 à 20:45
# Else
# On Error GoTo error
# Set services = Locator.ConnectServer(txtserv.Text)
# Set ServiceObject = services.Get("Win32_Service='" & service & "'")
# 'L'arrete
# ServiceObject.Stopservice
# error:
# MsgBox "Le service n'a pu etre stoppé"
# End If
# maj (cmdstop.Visible)
# End Sub
par cela pour eviter d'afficher à chaque fois le message : "Le service n'a pu être stoppé"
# Else
# On Error GoTo error
# Set services = Locator.ConnectServer(txtserv.Text)
# Set ServiceObject = services.Get("Win32_Service='" & service & "'")
# 'L'arrete
# ServiceObject.Stopservice
# End If
# maj (cmdstop.Visible)
# Exit sub
# error:
# MsgBox "Le service n'a pu etre stoppé"
# End Sub
@+
25 oct. 2006 à 11:00
Même question que SEBASH : comment exécuter un processus à distance ?
Ta procédure cmdadproc_Click démarrera le processus sur la machine locale...
2 oct. 2006 à 23:47
ma question c'est est ce qu'on peut installer le WMI dans WIN98
dans le cas contraire s'il y a une autre methode s'éxecutant a partir de la plupart des versions de windows surtout win98 et xp
et merci....
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.