⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 module1.bas

📁 电子书“Visual Basic 6 网络编程实例教程.rar”
💻 BAS
字号:
Attribute VB_Name = "Module1"
Option Explicit

Public 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

Public Type ENUM_SERVICE_STATUS
   lpServiceName As Long
   lpDisplayName As Long
   ServiceStatus As SERVICE_STATUS
End Type

'自定义常量
Public Const SIZEOF_SERVICE_STATUS As Long = 36

'windows常量
Public Const LB_SETTABSTOPS As Long = &H192
Public Const ERROR_MORE_DATA = 234
Public Const SC_MANAGER_ENUMERATE_SERVICE = &H4

'服务状态
Public Const SERVICE_ACTIVE = &H1
Public Const SERVICE_INACTIVE = &H2
Public Const SERVICE_STATE_ALL = SERVICE_ACTIVE Or SERVICE_INACTIVE
                                     
'服务类型,对应于SERVICE_STATUS.dwServiceType
Public Const SERVICE_KERNEL_DRIVER As Long = &H1
Public Const SERVICE_FILE_SYSTEM_DRIVER As Long = &H2
Public Const SERVICE_ADAPTER As Long = &H4
Public Const SERVICE_RECOGNIZER_DRIVER As Long = &H8
Public Const SERVICE_WIN32_OWN_PROCESS As Long = &H10
Public Const SERVICE_WIN32_SHARE_PROCESS As Long = &H20
Public Const SERVICE_INTERACTIVE_PROCESS As Long = &H100
Public Const SERVICE_WIN32 As Long = SERVICE_WIN32_OWN_PROCESS Or _
                                     SERVICE_WIN32_SHARE_PROCESS
                                     
Public Const SERVICE_DRIVER As Long = SERVICE_KERNEL_DRIVER Or _
                                      SERVICE_FILE_SYSTEM_DRIVER Or _
                                      SERVICE_RECOGNIZER_DRIVER
                                      
Public Const SERVICE_TYPE_ALL As Long = SERVICE_WIN32 Or _
                                        SERVICE_ADAPTER Or _
                                        SERVICE_DRIVER Or _
                                        SERVICE_INTERACTIVE_PROCESS
                                     
'服务状态SERVICE_STATUS.dwCurrentState
Public Const SERVICE_STOPPED As Long = &H1
Public Const SERVICE_START_PENDING As Long = &H2
Public Const SERVICE_STOP_PENDING As Long = &H3
Public Const SERVICE_RUNNING As Long = &H4
Public Const SERVICE_CONTINUE_PENDING As Long = &H5
Public Const SERVICE_PAUSE_PENDING As Long = &H6
Public Const SERVICE_PAUSED As Long = &H7

'接受的控制,对应于SERVICE_STATUS.dwControlsAccepted
Public Const SERVICE_ACCEPT_STOP As Long = &H1
Public Const SERVICE_ACCEPT_PAUSE_CONTINUE As Long = &H2
Public Const SERVICE_ACCEPT_SHUTDOWN   As Long = &H4

'调用Net API的Windows数据类型
Public Const MAX_PREFERRED_LENGTH As Long = -1
Public Const NERR_SUCCESS As Long = 0&

Public Const SV_TYPE_WORKSTATION         As Long = &H1
Public Const SV_TYPE_SERVER              As Long = &H2
Public Const SV_TYPE_SQLSERVER           As Long = &H4
Public Const SV_TYPE_DOMAIN_CTRL         As Long = &H8
Public Const SV_TYPE_DOMAIN_BAKCTRL      As Long = &H10
Public Const SV_TYPE_TIME_SOURCE         As Long = &H20
Public Const SV_TYPE_AFP                 As Long = &H40
Public Const SV_TYPE_NOVELL              As Long = &H80
Public Const SV_TYPE_DOMAIN_MEMBER       As Long = &H100
Public Const SV_TYPE_PRINTQ_SERVER       As Long = &H200
Public Const SV_TYPE_DIALIN_SERVER       As Long = &H400
Public Const SV_TYPE_XENIX_SERVER        As Long = &H800
Public Const SV_TYPE_SERVER_UNIX         As Long = SV_TYPE_XENIX_SERVER
Public Const SV_TYPE_NT                  As Long = &H1000
Public Const SV_TYPE_WFW                 As Long = &H2000
Public Const SV_TYPE_SERVER_MFPN         As Long = &H4000
Public Const SV_TYPE_SERVER_NT           As Long = &H8000
Public Const SV_TYPE_POTENTIAL_BROWSER   As Long = &H10000
Public Const SV_TYPE_BACKUP_BROWSER      As Long = &H20000
Public Const SV_TYPE_MASTER_BROWSER      As Long = &H40000
Public Const SV_TYPE_DOMAIN_MASTER       As Long = &H80000
Public Const SV_TYPE_SERVER_OSF          As Long = &H100000
Public Const SV_TYPE_SERVER_VMS          As Long = &H200000
Public Const SV_TYPE_WINDOWS             As Long = &H400000
Public Const SV_TYPE_DFS                 As Long = &H800000
Public Const SV_TYPE_CLUSTER_NT          As Long = &H1000000
Public Const SV_TYPE_TERMINALSERVER      As Long = &H2000000
Public Const SV_TYPE_DCE                 As Long = &H10000000
Public Const SV_TYPE_ALTERNATE_XPORT     As Long = &H20000000
Public Const SV_TYPE_LOCAL_LIST_ONLY     As Long = &H40000000
Public Const SV_TYPE_DOMAIN_ENUM         As Long = &H80000000
Public Const SV_TYPE_ALL                 As Long = &HFFFFFFFF

Public Const SV_PLATFORM_ID_OS2       As Long = 400
Public Const SV_PLATFORM_ID_NT        As Long = 500

'应用于svX_version_major的掩码值,以获取主版本号
Public Const MAJOR_VERSION_MASK        As Long = &HF

Public Type SERVER_INFO_100
  sv100_platform_id As Long
  sv100_name As Long
End Type

Public Declare Function OpenSCManager Lib "advapi32.dll" _
   Alias "OpenSCManagerA" _
  (ByVal lpMachineName As String, _
   ByVal lpDatabaseName As String, _
   ByVal dwDesiredAccess As Long) As Long

Public 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
   
Public Declare Function CloseServiceHandle Lib "advapi32.dll" _
   (ByVal hSCObject As Long) As Long

Public Declare Function NetServerEnum Lib "Netapi32" _
  (ByVal servername As Long, _
   ByVal level As Long, _
   buf As Any, _
   ByVal prefmaxlen As Long, _
   entriesread As Long, _
   totalentries As Long, _
   ByVal servertype As Long, _
   ByVal domain As Long, _
   resume_handle As Long) As Long

Public Declare Function NetApiBufferFree Lib "netapi32.dll" _
   (ByVal Buffer As Long) As Long

Public Declare Sub CopyMemory Lib "kernel32" _
   Alias "RtlMoveMemory" _
  (pTo As Any, uFrom As Any, _
   ByVal lSize As Long)
   
Public Declare Function lstrlenW Lib "kernel32" _
  (ByVal lpString As Long) As Long

Public Declare Function lstrcpyA Lib "kernel32" _
  (ByVal RetVal As String, ByVal Ptr As Long) As Long
                        
Public Declare Function lstrlenA Lib "kernel32" _
  (ByVal Ptr As Any) As Long

Public Declare Function SendMessage Lib "user32" _
   Alias "SendMessageA" _
  (ByVal hwnd As Long, _
   ByVal wMsg As Long, _
   ByVal wParam As Long, _
   lParam As Any) As Long


Public Function GetPointerToByteStringW(ByVal dwData As Long) As String
  
   Dim tmp() As Byte
   Dim tmplen As Long
   
   If dwData <> 0 Then
   
      tmplen = lstrlenW(dwData) * 2
      
      If tmplen <> 0 Then
      
         ReDim tmp(0 To (tmplen - 1)) As Byte
         CopyMemory tmp(0), ByVal dwData, tmplen
         GetPointerToByteStringW = tmp
         
     End If
     
   End If
    
End Function


Public Function GetStrFromPtrA(ByVal lpszA As Long) As String

   GetStrFromPtrA = String$(lstrlenA(ByVal lpszA), 0)
   Call lstrcpyA(ByVal GetStrFromPtrA, ByVal lpszA)
   
End Function


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -