home *** CD-ROM | disk | FTP | other *** search
/ Programming Tool Box / SIMS_2.iso / tool / network / whomi1 / whoami.bas < prev    next >
Encoding:
BASIC Source File  |  1995-02-08  |  3.0 KB  |  73 lines

  1. Option Explicit
  2.  
  3. Type L10_WKSTA
  4.     computername            As String
  5.     username                As String
  6.     langroup                As String
  7.     ver_major               As String * 1
  8.     ver_minor               As String * 1
  9.     logon_domain            As String
  10.     other_domains           As String
  11. End Type
  12.  
  13. Global Const FMT_wksta_info_10 = "P15P20P15B1B1P15P159"
  14.  
  15. Global L10_WorkstationData      As L10_WKSTA
  16.  
  17. Declare Function NETAPI_NetWkstaGetInfo Lib "NETAPI.DLL" Alias "NetWkstaGetInfo" (ByVal pszServer As String, ByVal sLevel As Integer, ByVal pbBuffer As Long, ByVal cbBuffer As Integer, pcbTotalAvail As Integer) As Integer
  18.  
  19. Declare Function VLM_BufferToVBType Lib "VBLANMAN.DLL" Alias "BufferToVBType" (Dest As Any, ByVal DestLen As Integer, ByVal Src As Long, ByVal SrcLen As Integer, ByVal FormatString As String) As Integer
  20. Declare Function VLM_CreateLMBuffer Lib "VBLANMAN.DLL" Alias "CreateLMBuffer" (ByVal FormatString As String, ByVal Entries As Integer, BufferSize As Integer) As Long
  21. Declare Function VLM_FreeLMBuffer Lib "VBLANMAN.DLL" Alias "FreeLMBuffer" (ByVal BufferPointer As Long) As Integer
  22.  
  23. Function NET_GetWorkstationInfo (tServer As String, L10_Structure As L10_WKSTA, nErrorCode As Integer) As Integer
  24.  
  25. ' Get information about the current workstation.
  26.  
  27. ' Parameter values:
  28. '   tServer         The name of the workstation we want to know about.
  29. '                   If left blank, returns info about the local system.
  30. '   L10_Structure   This is the structure that stores the information.
  31.  
  32.     Dim lPointer                As Long
  33.     Dim nGlobalSize             As Integer
  34.     Dim nDataBytes              As Integer
  35.     Dim nResult                 As Integer
  36.                                                                
  37. ' Set aside global memory to store the workstation information
  38.     lPointer = VLM_CreateLMBuffer(FMT_wksta_info_10, 1, nGlobalSize)
  39.     If lPointer = 0& Then
  40.         NET_GetWorkstationInfo = False
  41.         nErrorCode = 0
  42.         Exit Function
  43.     End If
  44.  
  45. ' Call LM API function NetWkstaGetInfo to get data
  46.     nResult = NETAPI_NetWkstaGetInfo(tServer, 10, lPointer, CLng(nGlobalSize), nDataBytes)
  47.     If nResult = 0 Then
  48.         ' Get the information from the memory structure to pass it back
  49.         nResult = VLM_BufferToVBType(L10_Structure, Len(L10_Structure), lPointer, nGlobalSize, FMT_wksta_info_10)
  50.         ' Determine if a error occurred transferring the information
  51.         If nResult = 0 Then
  52.             NET_GetWorkstationInfo = True
  53.           Else
  54.             NET_GetWorkstationInfo = False
  55.             nErrorCode = nResult
  56.         End If
  57.       Else
  58.         ' An error occrred in the NETAPI.DLL call
  59.         NET_GetWorkstationInfo = False
  60.         nErrorCode = nResult
  61.     End If
  62.  
  63.     nResult = VLM_FreeLMBuffer(lPointer)            ' Release the memory
  64.  
  65. End Function
  66.  
  67. Function UT_ByteToInteger (tChar As String) As Integer
  68.  
  69.     UT_ByteToInteger = Asc(Left$(tChar, 1))
  70.  
  71. End Function
  72.  
  73.