通LotusScript切换id并修改id的密码

Declare Function SECKFMChangePassword Lib "c:\lotus\notes\nnotes.dll" (Byval IDFile$,Byval OldPassword$,Byval NewPassword$)As Integer
Declare Function SECKFMSwitchToIDFile Lib "c:\lotus\notes\nnotes.dll" (Byval IDFile$,Byval Password$,Byval UserName$, Byval MaxUserNameLength%,Byval ReservedFlag&,Byval flag&)As Integer
Declare Function OSLoadString Lib "c:\lotus\notes\nlib.dll" (Byval hModule&, Byval Status%, Byval retBuffer$, Byval BufferLength%) As Integer

Const MAXUSERNAME=256
Type ID_INFO
	Name As String
	Password As String
End Type

Function APICheckError(Error%) As String
	
	Dim s$, x%
	
	If Error% <> 0 Then
		s$ = Space$(254)
		x% = OSLoadString(0, Error%, s$, 254)          
		If x% = 0 Then
			s$ = "General Notes Error"
		Else
			s$ = Left$(s$,x%)
		End If          
		APICheckError= s$
	End If          
	
End Function

Sub APISwitchID(filepath$, passwordlist, id As ID_Info, s$)
	Dim Status%
	Dim Flag%
	
	Dim UserName As String * MAXUSERNAME
	
	ID.Name="NA"
	ID.Password= "NA"
	
	Flag%=False
	Forall x In PasswordList							
		pword$=Cstr(x)
		Print s & " Checking Password ......" & Pword$ ,filepath$
		Status%=SECKFMSwitchToIDFile(filepath$,pword$,UserName,MAXUSERNAME,0,0)	
		If Status% =0 Then 					
			Print Now " Change Password SUCCESS <" & IDFile$ & ">"				
'			Call  CreateIDDoc(filepath$,UserName,pword$,filepath$)				
			Flag%=True
			ID.Name=UserName
			ID.Password= Cstr(x)
			Exit Forall
		Else		
			Print "Error " & APICheckError(status%)
			Print" Change Password ERROR <" & IDFile$ & ">"
			Print" ERROR <" & APICheckError(status%)& ">"		
		End If	
		Status%=0
		Yield
	End Forall
	If Flag%=False Then
		Print Now & " ERROR Could Not Add file <" & IDFile$ & ">"				
	End If
	
End Sub

Function  APIChangePword(IDFile$, OldPword$, NewPword$)As Integer
	
	Dim Status%	
	
	Status%=SECKFMChangePassword(IDFile$,OldPword$,NewPword$)
	If Status% =0 Then 
		Print"Change Password SUCCESS <" & IDFile$ & ">"
		APIChangePword=True
	Else		
		Print"Change Password ERROR <" & IDFile$ & ">"
		Print"ERROR <" & APICheckError(status%)& ">"
		APIChangePword=False
	End If	
	
End Function
,

分享到