Soyez le premier à donner votre avis sur cette source.
Vue 10 186 fois - Téléchargée 1 214 fois
'APIs principales 'ouvre le Service Control Manager Private Declare Function OpenSCManager Lib "advapi32.dll" Alias "OpenSCManagerA" (ByVal lpMachineName As String, ByVal lpDatabaseName As String, ByVal dwDesiredAccess As Long) As Long 'pour l'énumération Private Declare Function EnumServicesStatus Lib "advapi32.dll" Alias "EnumServicesStatusA" (ByVal hSCManager As Long, ByVal dwServiceType As Long, ByVal dwServiceState As Long, lpServices As Any, ByVal cbBufSize As Long, pcbBytesNeeded As Long, lpServicesReturned As Long, lpResumeHandle As Long) As Long 'ferme le handle d'un service ouvert Private Declare Function CloseServiceHandle Lib "advapi32.dll" (ByVal hSCObject As Long) As Long 'démarre un service Private Declare Function StartService Lib "advapi32.dll" Alias "StartServiceA" (ByVal hService As Long, ByVal dwNumServiceArgs As Long, ByVal lpServiceArgVectors As Long) As Long Private Declare Function OpenService Lib "advapi32.dll" Alias "OpenServiceA" (ByVal hSCManager As Long, ByVal lpServiceName As String, ByVal dwDesiredAccess As Long) As Long 'permet des actions sur un service Private Declare Function ControlService Lib "advapi32.dll" (ByVal hService As Long, ByVal dwControl As Long, lpServiceStatus As SERVICE_STATUS) As Long 'change les paramètres du service Private Declare Function ChangeServiceConfig Lib "advapi32.dll" Alias "ChangeServiceConfigA" (ByVal hService As Long, ByVal dwServiceType As Long, ByVal dwStartType As Long, ByVal dwErrorControl As Long, ByVal lpBinaryPathName As String, ByVal lpLoadOrderGroup As String, lpdwTagId As Long, ByVal lpDependencies As String, ByVal lpServiceStartName As String, ByVal lpPassword As String, ByVal lpDisplayName As String) As Long 'le reste dans le *.zip, avec un exemple
14 janv. 2007 à 23:42
@+ ^_-
4 sept. 2006 à 22:21
Pour ceux que ca interesse, voici un exemple concret avec la methode que j'ai cite plus haut (via QueryServiceConfig)
http://systemzeb.free.fr/ServiceInfo.zip
++
4 sept. 2006 à 16:42
Les types BOOT_START et SYSTEM_START ne peuvent être appliqués par l'utilisateur.
@+
4 sept. 2006 à 16:20
Pleins de petits détails qui améliorent le tout.
Le changement de type de démarrage est presque terminé...
Encore quelques fonctions à rajouter avant de faire une classe ^^
Merci encore, @+
4 sept. 2006 à 16:09
Quelques conseils, suite au test du programme :
Enlève le MultiSelect
dans le MouseDown, selectionne l'item survollé :
Private Sub LV8_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim Item As ListItem
If Button = 2 Then
Set Item = LV8.HitTest(x, y)
If Not Item Is Nothing Then
Item.Selected = True
tu peux activer le tri dans le Form_Load :
LV8.SortKey = 0
LV8.SortOrder = lvwAscending
LV8.Sorted = True
pour le tri, toujours, met en ASC par defaut :
Private Sub LV8_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
'réorganise les objets du listview
If LV8.SortKey = ColumnHeader.Index - 1 Then
If Not LV8.SortOrder = lvwAscending Then
LV8.SortOrder = lvwAscending
Else
LV8.SortOrder = lvwDescending
End If
Else
LV8.SortKey = ColumnHeader.Index - 1
LV8.SortOrder = lvwAscending
End If
End Sub
pour placer dans le clipboard, évite de faire de multiples concaténations :
Private Sub copy_to_clipboard_Click()
'copie dans le clipboard les infos sur le service
Dim sBuffer As String
On Error Resume Next
With LV8.SelectedItem
Clipboard.Clear
sBuffer = "Service=" & .Text & vbNewLine & _
"Désignation=" & .SubItems(1) & vbNewLine & _
"Etat=" & .SubItems(2) & vbNewLine & _
"Type de service=" & .SubItems(3) & vbNewLine & _
"Le service accepte=" & .SubItems(4) & vbNewLine & _
"CheckPoint=" & .SubItems(5) & vbNewLine & _
"WaitHint=" & .SubItems(6) & vbNewLine & _
"DependOnService=" & .SubItems(7) & vbNewLine & _
"Description=" & .SubItems(8) & vbNewLine & _
"DiagnosticsMessageFile=" & .SubItems(9) & vbNewLine & _
"ErrorControl=" & .SubItems(10) & vbNewLine & _
"FailureActions=" & .SubItems(11) & vbNewLine & _
"Group=" & .SubItems(12) & vbNewLine & _
"ImagePath=" & .SubItems(13) & vbNewLine & _
"ObjectName=" & .SubItems(14) & vbNewLine & _
"Start=" & .SubItems(15) & vbNewLine & _
"Tag=" & .SubItems(16) & vbNewLine
Clipboard.SetText sBuffer
End With
End Sub
un On error évité en faisant :
Private Sub LV8_ItemClick(ByVal Item As MSComctlLib.ListItem)
txtInfo.Text = Item.SubItems(8)
End Sub
au lieu de ton LV8_Click()
deuxième avantage, ca fonctionne même quand on se déplace avec les touches fléchées...
prochaine étape : créer la classe CService ^^ avec propriétés, méthodes, etc
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.