|
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: 2025-10-30 Copyright 1995-2025 VBI |