home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 1_2002.ISO / Data / Zips / CODE_UPLOAD6345622000.psc / NetServer.bas < prev    next >
Encoding:
BASIC Source File  |  2000-05-29  |  4.4 KB  |  172 lines

  1. Attribute VB_Name = "Module1"
  2. Option Explicit
  3.  
  4. Public Declare Function NetServerEnum _
  5.     Lib "Netapi32.dll" ( _
  6.     vServername As Any, _
  7.     ByVal lLevel As Long, _
  8.     vBufptr As Any, _
  9.     lPrefmaxlen As Long, _
  10.     lEntriesRead As Long, _
  11.     lTotalEntries As Long, _
  12.     vServerType As Any, _
  13.     ByVal sDomain As String, _
  14.     vResumeHandle As Any) _
  15.     As Long
  16.  
  17. Public Declare Sub RtlMoveMemory _
  18.     Lib "Kernel32" ( _
  19.     dest As Any, _
  20.     vSrc As Any, _
  21.     ByVal lSize&)
  22.  
  23. Public Declare Sub lstrcpyW _
  24.     Lib "Kernel32" ( _
  25.     vDest As Any, _
  26.     ByVal sSrc As Any)
  27.     
  28. Declare Sub lstrcpy _
  29.     Lib "Kernel32" ( _
  30.     vDest As Any, _
  31.     ByVal vSrc As Any)
  32.  
  33. Declare Sub lstrcpynW _
  34.     Lib "Kernel32" ( _
  35.     ByVal vDest As Any, _
  36.     ByVal vSrc As Any, _
  37. lLength As Long)
  38.  
  39. Public Declare Function NetApiBufferFree _
  40.     Lib "Netapi32.dll" ( _
  41.     ByVal lpBuffer As Long) _
  42.     As Long
  43.  
  44. Declare Function NetWkstaGetInfo _
  45.     Lib "Netapi32.dll" ( _
  46.     ByVal sServerName$, _
  47.     ByVal lLevel&, _
  48.     vBuffer As Any) _
  49.     As Long
  50.  
  51. Declare Function NetMessageBufferSend _
  52.     Lib "Netapi32.dll" ( _
  53.     ByVal sServerName$, _
  54.     ByVal sMsgName$, _
  55.     ByVal sFromName$, _
  56.     ByVal sMessageText$, _
  57.     ByVal lBufferLength&) _
  58.     As Long
  59.  
  60. Type SERVER_INFO_100
  61.     sv100_platform_id As Long
  62.     sv100_servername As Long
  63. End Type
  64.  
  65. Public Type SERVER_INFO_101
  66.     dw_platform_id As Long
  67.     ptr_name As Long
  68.     dw_ver_major As Long
  69.     dw_ver_minor As Long
  70.     dw_type As Long
  71.     ptr_comment As Long
  72. End Type
  73.  
  74. Type WKSTA_INFO_100
  75.     wki100_platform_id As Long
  76.     wki100_computername As Long
  77.     wki100_langroup As Long
  78.     wki100_ver_major As Long
  79.     wki100_ver_minor As Long
  80. End Type
  81.  
  82.  
  83. Public Const SV_TYPE_WORKSTATION = &H1
  84. Public Const SV_TYPE_SERVER = &H2
  85. Public Const SV_TYPE_SQLSERVER = &H4
  86. Public Const SV_TYPE_DOMAIN_CTRL = &H8
  87. Public Const SV_TYPE_DOMAIN_BAKCTRL = &H10
  88. Public Const SV_TYPE_TIMESOURCE = &H20
  89. Public Const SV_TYPE_AFP = &H40
  90. Public Const SV_TYPE_NOVELL = &H80
  91. Public Const SV_TYPE_DOMAIN_MEMBER = &H100
  92. Public Const SV_TYPE_LOCAL_LIST_ONLY = &H40000000
  93. Public Const SV_TYPE_PRINT = &H200
  94. Public Const SV_TYPE_DIALIN = &H400
  95. Public Const SV_TYPE_XENIX_SERVER = &H800
  96. Public Const SV_TYPE_MFPN = &H4000
  97. Public Const SV_TYPE_NT = &H1000
  98. Public Const SV_TYPE_WFW = &H2000
  99. Public Const SV_TYPE_SERVER_NT = &H8000
  100. Public Const SV_TYPE_POTENTIAL_BROWSER = &H10000
  101. Public Const SV_TYPE_BACKUP_BROWSER = &H20000
  102. Public Const SV_TYPE_MASTER_BROWSER = &H40000
  103. Public Const SV_TYPE_DOMAIN_MASTER = &H80000
  104. Public Const SV_TYPE_DOMAIN_ENUM = &H80000000
  105. Public Const SV_TYPE_WINDOWS = &H400000
  106. Public Const SV_TYPE_ALL = &HFFFFFFFF
  107.  
  108.  
  109. Public Function GetLocalSystemName()
  110.     Dim lReturnCode As Long
  111.     Dim bBuffer(512) As Byte
  112.     Dim i As Integer
  113.     Dim twkstaInfo100 As WKSTA_INFO_100, lwkstaInfo100 As Long
  114.     Dim lwkstaInfo100StructPtr As Long
  115.     Dim sLocalName As String
  116.     
  117.     lReturnCode = NetWkstaGetInfo("", 100, lwkstaInfo100)
  118.  
  119.     lwkstaInfo100StructPtr = lwkstaInfo100
  120.                  
  121.     If lReturnCode = 0 Then
  122.                  
  123.         RtlMoveMemory twkstaInfo100, ByVal _
  124.         lwkstaInfo100StructPtr, Len(twkstaInfo100)
  125.          
  126.         lstrcpyW bBuffer(0), twkstaInfo100.wki100_computername
  127.  
  128.         i = 0
  129.         Do While bBuffer(i) <> 0
  130.             sLocalName = sLocalName & Chr(bBuffer(i))
  131.             i = i + 2
  132.         Loop
  133.             
  134.         GetLocalSystemName = sLocalName
  135.          
  136.     End If
  137.  
  138. End Function
  139.  
  140. Public Function GetDomainName() As String
  141.     
  142.     Dim lReturnCode As Long
  143.     Dim bBuffer(512) As Byte
  144.     Dim i As Integer
  145.     Dim twkstaInfo100 As WKSTA_INFO_100, lwkstaInfo100 As Long
  146.     Dim lwkstaInfo100StructPtr As Long
  147.     Dim sDomainName As String
  148.     
  149.     lReturnCode = NetWkstaGetInfo("", 100, lwkstaInfo100)
  150.  
  151.     lwkstaInfo100StructPtr = lwkstaInfo100
  152.                  
  153.     If lReturnCode = 0 Then
  154.                  
  155.         RtlMoveMemory twkstaInfo100, ByVal lwkstaInfo100StructPtr, Len(twkstaInfo100)
  156.          
  157.         lstrcpyW bBuffer(0), twkstaInfo100.wki100_langroup
  158.         
  159.         
  160.         i = 0
  161.         Do While bBuffer(i) <> 0
  162.             sDomainName = sDomainName & Chr(bBuffer(i))
  163.             i = i + 2
  164.         Loop
  165.             
  166.         GetDomainName = sDomainName
  167.          
  168.     End If
  169.         
  170. End Function
  171.  
  172.