Getting network user name in Windows for Workgroups 3.11
It can be useful to obtain the login name of the user currently logged in to the Windows for Workgroups system. This code should help a little:
Author: Declare Function WNetGetUser Lib "wfwnet.drv" (ByVal szUser As String, nBufferSize As Integer) As Integer Declare Function MNetNetworkEnum Lib "wfwnet.drv" (lphNetwork As Integer) As Integer Declare Function MNetSetNextTarget Lib "wfwnet.drv" (ByVal hNetwork As Integer) As Integer Sub Form_Load () Dim User As String If Not MultiNetGetUser(User) Then Label1.Caption = "Not logged on." Else Label1.Caption = "Logged on as " + User End If End Sub Function MultiNetGetUser (UserName$) As Integer ' The following function determines the logged-in user in Windows for ' Workgroups: Dim hNetDrv As Integer Dim wRetEnum As Integer, ret As Integer Dim wRetGetUser As Integer Dim cb As Integer Dim Found As Integer Found = False ' Grab the 1st network: hNetDrv = 0 wRetEnum = MNetNetworkEnum(hNetDrv) ' Loop while there are installed networks: While (wRetEnum = 0) And Not Found User$ = Space$(255) cb = Len(User$) ' Make sure correct network is accessed in next WNetGetUser call: ret = MNetSetNextTarget(hNetDrv) ' Get the user: wRetGetUser = WNetGetUser(User$, cb) ' Check for success: If wRetGetUser = 0 Then ' Just grab the relevant characters: UserName$ = Left$(User$, cb - 1) Found = True End If ' Get the next network: wRetEnum = MNetNetworkEnum(hNetDrv) Wend MultiNetGetUser = Found End Function |
||
Editor: Last update: 2024-11-21 Copyright 1995-2024 VBI |