Verify the Windows Password
Add a new bas module (modVerifyPassword) and copy the following code into it:
Option Explicit Declare Function GetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, _ nSize As Long) As Long Private Declare Function WNetVerifyPassword _ Lib "mpr.dll" Alias _ "WNetVerifyPasswordA" _ (ByVal lpszPassword As String, _ ByRef pfMatch As Long) As Long Public Function GetWindowsLoginUserID() As String Dim rtn As Long Dim sBuffer As String Dim lSize As Long sBuffer = String$(260, Chr$(0)) lSize = Len(sBuffer) rtn = GetUserName(sBuffer, lSize) If rtn Then sBuffer = left$(sBuffer, lSize) 'Reformat string If InStr(sBuffer, Chr$(0)) Then sBuffer = left$(sBuffer, InStr(sBuffer, Chr$(0)) - 1) End If GetWindowsLoginUserID = sBuffer Else 'Error! GetWindowsLoginUserID = "" End If End Function Public Function VerifyWindowsLoginUserPassword _ (ByVal Password As String) As Boolean Dim rtn As Long, Match As Long rtn = WNetVerifyPassword(Password, Match) If rtn Then VerifyWindowsLoginUserPassword = False Else VerifyWindowsLoginUserPassword = (Match <> 0) End If End Function
Page 2 of 3
This article was originally published on November 20, 2002