|聲明模塊:
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