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

📄 netapi.bas

📁 这是一个带公历农历日历及查询、并带有自动关机
💻 BAS
字号:
Attribute VB_Name = "NetAPI"
Option Explicit

Public Const SRV_TYPE_SERVER = &H2
Public Const SRV_TYPE_SQLSERVER = &H4
Public Const SRV_TYPE_NT_PDC = &H8
Public Const SRV_TYPE_NT_BDC = &H10
Public Const SRV_TYPE_PRINT = &H200
Public Const SRV_TYPE_NT = &H1000
Public Const SRV_TYPE_ALL = &HFFFF
Public Const SRV_TYPE_RAS = &H400

Public Const SRV_PRIMARY = 1
Public Const SRV_BACKUP = 2
Public Const SRV_SERVER = 3
Public Const SRV_NTWK = 4
Public Const SRV_WIN95 = 5
Public Const SRV_WIN3 = 6

Public Const USER_ACC_NOPWD_CHANGE = 577&
Public Const USER_ACC_NOPWD_EXPIRE = 66049
Public Const USER_ACC_DISABLED = 515&
Public Const USER_ACC_LOCKED = 529&

Public Const NERR_Success = 0&
Public Const NERR_Access_Denied = 5&
Public Const NERR_MoreData = 234&

Declare Function NetGetDCName Lib "netapi32" _
        (lpServer As Any, lpDomain As Any, _
         vBuffer As Any) As Long
                       
Declare Function NetMessageBufferSend Lib "netapi32" _
        (ByVal ServerName As String, _
         ByVal ToName As String, _
         ByVal FromName As String, _
         ByVal Message As String, _
         ByVal BufferLen As Long) As Long

Declare Function NetApiBufferFree Lib "netapi32" _
        (ByVal lBuffer&) As Long

'Ritorna il nome del Primay Domain Controller
Public Function GetPDCName() As String
    Dim lpBuffer As Long, nRet As Long
    Dim yServer() As Byte
    Dim sLocal As String
    
    yServer = MakeServerName(ByVal "")
    
    nRet = NetGetDCName(yServer(0), yServer(0), lpBuffer)
        
    If nRet = 0 Then
        sLocal = PointerToStringW(lpBuffer)
    End If
    
    If lpBuffer Then Call NetApiBufferFree(lpBuffer)
                
    GetPDCName = sLocal
    
End Function

'Ritorna il nome del Dominio NT
Public Function GetDomainName() As String
    Dim SrvInfo As ServerInfo
    
    SrvInfo = GetServerInfo()
    GetDomainName = SrvInfo.LanGroup
    
End Function

'Ritorna il nome del computer locale
Public Function GetLocalSystemName() As String
    Dim SrvInfo As ServerInfo
    
    SrvInfo = GetServerInfo()
    GetLocalSystemName = SrvInfo.ServerName

End Function

Public Function PointerToStringW(lpStringW As Long) As String
   Dim buffer() As Byte
   Dim nLen As Long
   
   If lpStringW Then
      nLen = lstrlenW(lpStringW) * 2
      If nLen Then
         ReDim buffer(0 To (nLen - 1)) As Byte
         CopyMem buffer(0), ByVal lpStringW, nLen
         PointerToStringW = buffer
      End If
   End If
End Function

Public Function MakeServerName(ByVal ServerName As String)
    Dim yServer() As Byte
        
    If ServerName <> "" Then
        If InStr(1, ServerName, "\\") = 0 Then
            ServerName = "\\" & ServerName
        End If
    End If
    
    yServer = ServerName & vbNullChar
    MakeServerName = yServer

End Function

Public Function NetError(nErr As Long, Optional Ret) As String
    Dim Msg As String
    
    If IsMissing(Ret) Then Ret = False
    
    Select Case nErr
        Case 5
            Msg = "Accesso Negato!"
        Case 53
            Msg = "Percorso di Rete errato!"
        Case 1722
            Msg = "Server non disponibile!"
        Case Else
            Msg = "Si 

⌨️ 快捷键说明

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