Deklaration: Declare Function CloseServiceHandle Lib "advapi32.dll" ( _ ByVal hSCObject As Long) As Long Beschreibung: Parameter:
Rückgabewert: Beispiel: Private Declare Function OpenSCManager Lib "advapi32.dll" _ Alias "OpenSCManagerA" ( _ ByVal lpMachineName As String, _ ByVal lpDatabaseName As String, _ ByVal dwDesiredAccess As Long) As Long 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 Private Declare Function CloseServiceHandle Lib "advapi32.dll" ( _ ByVal hSCObject As Long) As Long Private Declare Sub CopyMemory Lib "kernel32" _ Alias "RtlMoveMemory" ( _ Destination As Any, _ Source As Any, _ ByVal Length As Long) Private Declare Function GetLastError Lib "kernel32" () As Long Private Declare Function lstrcpy Lib "kernel32" _ Alias "lstrcpyA" ( _ lpString1 As Any, _ lpString2 As Any) As Long Private Type SERVICE_STATUS dwServiceType As Long dwCurrentState As Long dwControlsAccepted As Long dwWin32ExitCode As Long dwServiceSpecificExitCode As Long dwCheckPoint As Long dwWaitHint As Long End Type Private Type ENUM_SERVICE_STATUS lpServiceName As Long lpDisplayName As Long ServiceStatus As SERVICE_STATUS End Type ' OpenSCManager lpDatabaseName-Konstante Private Const SERVICES_ACTIVE_DATABASE = "ServicesActive" ' Standarddatenbank ' OpenSCManager dwDesiredAccess-Konstanten Private Const SC_MANAGER_CONNECT = &H1 ' (Autorisierte Benutzer, Lokales ' System, Administrator) Erlaubt das Verbinden mit der Datenbank Private Const SC_MANAGER_ENUMERATE_SERVICE = &H4 ' (Autorisierte Benutzer, ' Lokales System, Administrator) Erlaubt das Enumerieren der Datenbank Private Const SC_MANAGER_QUERY_LOCK_STATUS = &H10 ' (Autorisierte Benutzer, ' Lokales System, Administrator) Erlaubt die Abfrage von gelockten Datensätzen Private Const SC_MANAGER_MODIFY_BOOT_CONFIG = &H20 ' SC_MANAGER_ALL_ACCESS Konstante Private Const STANDARD_RIGHTS_REQUIRED = &HF0000 ' SC_MANAGER_ALL_ACCESS Konstante Private Const SC_MANAGER_CREATE_SERVICE = &H2 ' SC_MANAGER_ALL_ACCESS Konstante Private Const SC_MANAGER_LOCK = &H8 ' SC_MANAGER_ALL_ACCESS Konstante Private Const SC_MANAGER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or _ SC_MANAGER_CONNECT Or SC_MANAGER_CREATE_SERVICE Or _ SC_MANAGER_ENUMERATE_SERVICE Or SC_MANAGER_LOCK Or _ SC_MANAGER_QUERY_LOCK_STATUS Or SC_MANAGER_MODIFY_BOOT_CONFIG) _ ' (Administrator) Erlaubt alle Zugriffe auf die Datenbank Private Const READ_CONTROL = &H20000 ' STANDARD_RIGHTS_READ Konstante Private Const STANDARD_RIGHTS_READ = (READ_CONTROL) ' Erlaubt Standard-Lesezugriffe ' EnumServicesStatus dwServiceType-Konstanten Private Const SERVICE_KERNEL_DRIVER = &H1 ' SERVICE_DRIVER Konstante Private Const SERVICE_FILE_SYSTEM_DRIVER = &H2 ' SERVICE_DRIVER Konstante Private Const SERVICE_RECOGNIZER_DRIVER = &H8 ' SERVICE_DRIVER Konstante Private Const SERVICE_DRIVER = (SERVICE_KERNEL_DRIVER Or _ SERVICE_FILE_SYSTEM_DRIVER Or SERVICE_RECOGNIZER_DRIVER) ' Es sollen Treiber _ ' Services enumeriert werden Private Const SERVICE_WIN32_OWN_PROCESS = &H10 ' SERVICE_WIN32 Konstante Private Const SERVICE_WIN32_SHARE_PROCESS = &H20 ' SERVICE_WIN32 Konstante Private Const SERVICE_WIN32 = (SERVICE_WIN32_OWN_PROCESS Or _ SERVICE_WIN32_SHARE_PROCESS) ' Es sollen Anwendungs Services enumeriert 'werden ' EnumServicesStatus dwServiceState-Konstanten Private Const SERVICE_ACTIVE = &H1 ' Der Service muss aktiv sein Private Const SERVICE_INACTIVE = &H2 ' Der Service muss Inaktiv sein Private Const SERVICE_STATE_ALL = (SERVICE_ACTIVE Or SERVICE_INACTIVE) ' Der Service kann Aktiv oder Inaktiv sein ' eine der Standard-Fehlerkonstanten Private Const ERROR_MORE_DATA = 234 ' Es sind noch Daten verfügbar ' Alle registrierten Services ermitteln Private Sub Form_Load() Dim hSManager As Long, Retval As Long, i As Integer Dim BufferSize As Long, CountServices As Long, hNextService As Long Dim Buffer() As ENUM_SERVICE_STATUS, TmpStr As String, TmpStr2 As String ' Datenbank mit registrierten Services öffnen hSManager = OpenSCManager(vbNullString, SERVICES_ACTIVE_DATABASE, SC_MANAGER_ENUMERATE_SERVICE) ' Benötigte Puffergröße ermitteln Retval = EnumServicesStatus(hSManager, SERVICE_WIN32, _ SERVICE_STATE_ALL, ByVal 0&, 0&, BufferSize, 0&, 0&) If GetLastError << 234 And Retval = 0 Then MsgBox "Die benötigte Puffergröße konnte nicht ermittelt werden." Exit Sub End If ' Puffer einrichten und Daten ermitteln ReDim Buffer(BufferSize / Len(Buffer(0))) Retval = EnumServicesStatus(hSManager, SERVICE_WIN32, _ SERVICE_STATE_ALL, Buffer(0), Len(Buffer(0)) * (UBound(Buffer) + 1), _ BufferSize, CountServices, hNextService) ' Servicenamen ausgeben For i = 0 To CountServices - 1 TmpStr = String(257, vbNullChar) Call lstrcpy(ByVal TmpStr, ByVal Buffer(i).lpServiceName) TmpStr = Trim$(Left$(TmpStr, InStr(1, TmpStr, vbNullChar) - 1)) TmpStr2 = String(257, vbNullChar) Call lstrcpy(ByVal TmpStr2, ByVal Buffer(i).lpDisplayName) TmpStr2 = Trim$(Left$(TmpStr2, InStr(1, TmpStr2, vbNullChar) - 1)) Debug.Print "Service: " & TmpStr & " (" & TmpStr2 & ")" Next i ' Servicedatenbank schließen Call CloseServiceHandle(hSManager) End Sub Diese Seite wurde bereits 7.572 mal aufgerufen. |
TOP! Unser Nr. 1 Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Buchempfehlung Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |