|聲明模塊:
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 VerifyWindowsLoginU Password(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 $#@60;$#@62; 0) End If End Function
|窗體代碼:
Private Sub cmdVerify_Click() MsgBox "The password you supplied was " VerifyWindowsLoginUserPassword(txtPassword.Text) End Sub Private Sub Form_Load() txtUsername = GetWindowsLoginUserID txtUsername.Enabled = False End Sub