'getting username from Registry on a Module
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long Public Const HKEY_CLASSES_ROOT = &H80000000 Public Const HKEY_CURRENT_CONFIG = &H80000005 Public Const HKEY_CURRENT_USER = &H80000001 Public Const HKEY_DYN_DATA = &H80000006 Public Const HKEY_LOCAL_MACHINE = &H80000002 Public Const HKEY_PERFORMANCE_DATA = &H80000004 Public Const HKEY_USERS = &H80000003 Public Const ERROR_SUCCESS = 0& Const REG_OPTION_NON_VOLATILE = &O0 Const KEY_ALL_CLASSES As Long = &HF00e' Const KEY_ALL_ACCESS = &H3F Const REG_SZ As Long = 1 Global NovellName$ Public Function RegGetString$(hInKey As Long, ByVal subkey$, ByVal valname$) Dim RetVal$, hSubKey As Long, dwType As Long, SZ As Long, v$, r As Long RetVal$ = "" r = RegOpenKeyEx(hInKey, subkey$, 0, KEY_ALL_CLASSES, hSubKey) If r <> ERROR_SUCCESS Then GoTo Quit_Now SZ = 256: v$ = String$(SZ, 0) r = RegQueryValueEx(hSubKey, valname$, 0, dwType, ByVal v$, SZ) If r = ERROR_SUCCESS And dwType = REG_SZ Then RetVal$ = Left(v$, SZ - 1) Else RetVal$ = "" End If If hInKey = 0 Then r = RegCloseKey(hSubKey) Quit_Now: RegGetString$ = RetVal$ End Function Public Function LooseSpace(invoer$) As String Dim p% p% = InStr(invoer$, Chr(0)) If p% <> 0 Then LooseSpace$ = Left$(invoer$, p% - 1) Exit Function End If LooseSpace$ = invoer$ End Function Public Sub getNovellName() Dim res&, lpBuffer$, nSize& nSize = 8 lpBuffer = String(8, 0) res& = GetUserName(lpBuffer, nSize) NovellName$ = LooseSpace(Left$(lpBuffer, nSize)) 'user is not logged on to a windows-network If NovellName$ = "" Then 'the username is kept in the HKEY_LOCAL_MACHINE\NETWORK\LOGON\username NovellName = RegGetString$(&H80000002, "NETWORK\LOGON", "username") End If End Sub 'Use it like Call getNovellName 'in the variable NovellName will be the username |