QueryServiceConfig2用法
如题 QueryServiceConfig2在VB中能用吗
怎么用谢了
'BOOL
'WINAPI
'QueryServiceConfig2A(
' SC_HANDLE hService,
' DWORD dwInfoLevel,
' LPBYTE lpBuffer,
' DWORD cbBufSize,
' LPDWORD pcbBytesNeeded
' );
'#define SERVICE_CONFIG_DESCRIPTION 1
'#define SERVICE_CONFIG_FAILURE_ACTIONS 2
Private Declare Function QueryServiceConfig2 Lib "advapi32.dll " _
Alias "QueryServiceConfig2A " _
(ByVal hService As Long, _
dwInfoLevel As Long, _
lpBuffer As Byte, _
cbBufSize As Long, _
pcbBytesNeeded As Long) As Long
Const SERVICE_CONFIG_DESCRIPTION = 1
Const SERVICE_CONFIG_FAILURE_ACTIONS = 2
Private Const SC_MANAGER_CONNECT = &H1
Private Const SC_MANAGER_CREATE_SERVICE = &H2
Private Const SC_MANAGER_ENUMERATE_SERVICE = &H4
Private Const SC_MANAGER_LOCK = &H8
Private Const SC_MANAGER_QUERY_LOCK_STATUS = &H10
Private Const SC_MANAGER_MODIFY_BOOT_CONFIG = &H20
Private Const READ_CONTROL = &H20000
Private Const STANDARD_RIGHTS_READ = (READ_CONTROL)
Private Const STANDARD_RIGHTS_WRITE = (READ_CONTROL)
Private Const STANDARD_RIGHTS_EXECUTE = (READ_CONTROL)
Private Const STANDARD_RIGHTS_REQUIRED = &HF0000
Private Const STANDARD_RIGHTS_ALL = &H1F0000
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)
' Service object specific access type
Private Const SERVICE_QUERY_CONFIG = &H1
Private Const SERVICE_CHANGE_CONFIG = &H2
Private Const SERVICE_QUERY_STATUS = &H4
Private Const SERVICE_ENUMERATE_DEPENDENTS = &H8
Private Const SERVICE_START = &H10
Private Const SERVICE_STOP = &H20
Private Const SERVICE_PAUSE_CONTINUE = &H40
Private Const SERVICE_INTERROGATE = &H80
Private Const SERVICE_USER_DEFINED_CONTROL = &H100
Private Const SERVICE_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SERVICE_QUERY_CONFIG Or SERVICE_CHANGE_CONFIG Or SERVICE_QUERY_STATUS Or SERVICE_ENUMERATE_DEPENDENTS Or SERVICE_START Or SERVICE_STOP Or SERVICE_PAUSE_CONTINUE Or SERVICE_INTERROGATE Or SERVICE_USER_DEFINED_CONTROL)
Private Sub Form_Load()
Dim hSCM As Long, hSVC As Long
Dim lRet As Long, lBytesNeeded As Long, lBytesNeeded1 As Long
hSCM = OpenSCManager(vbNullString, vbNullString, SC_MANAGER_ALL_ACCESS)
hSVC = OpenService(hSCM, "wmi ", SERVICE_ALL_ACCESS)
ReDim Config(0) As Byte
lRet = QueryServiceConfig2(hSVC, SERVICE_CONFIG_DESCRIPTION, Config(0), lBytesNeeded, lBytesNeeded1) '没一点反应 不知道该怎么用
CloseServiceHandle (hSVC)
CloseServiceHandle (hSCM)
End Sub
[解决办法]
http://www.tech-archive.net/Archive/VB/microsoft.public.vb.winapi/2004-04/0156.html