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.562 mal aufgerufen. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Buchempfehlung Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Neu! sevDTA 3.0 Pro SEPA mit Kontonummernprüfung Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. |
||||||||||||
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. |