附上vb6.0的完成最近文件列表功能模块
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Integer) As Integer
Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Integer, ByVal lpSubKey As String, ByVal Reserved As Integer, ByVal lpClass As String, ByVal dwOptions As Integer, ByVal samDesired As Integer, ByVal SecAtts As Integer, ByRef phkResult As Integer, ByRef lpdwDisp As Integer) As Integer
Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Integer, ByVal lpValueName As String) As Integer
Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Integer, ByVal lpSubKey As String, ByVal ulOptions As Integer, ByVal samDesired As Integer, ByRef phkResult As Integer) As Integer
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Integer, ByVal lpValueName As String, ByRef lpReserved As Integer, ByRef lpType As Integer, ByVal lpData As String, ByRef lpcbData As Integer) As Integer
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Integer, ByVal lpValueName As String, ByVal Reserved As Integer, ByVal dwType As Integer, ByVal lpData As String, ByVal cbData As Integer) As Integer
Rv = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\CyberVision\" & Ttl & "\Rfl", 0, KEY_ALL_ACCESS, hKey)
If Rv = 0 Then
For k = 1 To 4
Buffer = Space(260)
RegQueryValueEx(hKey, CStr(k) & ".", 0, 1, Buffer, 260)
RFL(k) = Trim(Buffer)
RegDeleteValue(hKey, CStr(k) & ".")
Next
RegCloseKey(hKey)
Else
Exit Sub
End If
For k = 1 To 4
If RFL(k) <> "" Then
MDIForm1.MnuRecent(0).Visible = 1
Exit For
End If
Next
If MDIForm1.MnuRecent(0).Visible = 0 Then Exit Sub
For k = 1 To 4
If RFL(k) <> "" Then
M = M + 1
MDIForm1.MnuRecent(M).Visible = 1
MDIForm1.MnuRecent(M).Caption = RFL(k)
End If
Next
End Sub
Public Sub AddToRecentList(ByVal CurFile$)
MDIForm1.MnuRecent(0).Visible = 1
For k = 1 To 4
If MDIForm1.MnuRecent(k).Caption = CurFile Then
If k = 1 Then Exit Sub
For P = k To 1 Step -1
If P = 1 Then Exit For
MDIForm1.MnuRecent(P).Caption = MDIForm1.MnuRecent(P -1).Caption
Next
MDIForm1.MnuRecent(1).Caption = CurFile
Exit Sub
End If
Next
For k = 1 To 4
If MDIForm1.MnuRecent(k).Visible = 0 Then
MDIForm1.MnuRecent(k).Visible = 1
For P = k To 1 Step -1
If P = 1 Then Exit For
MDIForm1.MnuRecent(P).Caption = MDIForm1.MnuRecent(P - 1).Caption
Next
MDIForm1.MnuRecent(1).Caption = CurFile
Exit Sub
End If
Next
For k = 4 To 2 Step -1
MDIForm1.MnuRecent(k).Caption = MDIForm1.MnuRecent(k - 1).Caption
Next
MDIForm1.MnuRecent(1).Caption = CurFile
End Sub
Public Sub SaveRecentFileList()
Rv = RegCreateKeyEx(HKEY_CURRENT_USER, "Software\CyberVision\" & Ttl & "\Rfl", 0, vbNullString, 0, KEY_ALL_ACCESS, 0, hKey, 0)
If Rv = 0 Then
For k = 1 To 4
If MDIForm1.MnuRecent(k).Caption <> "" Then
PaFn = MDIForm1.MnuRecent(k).Caption
RegSetValueEx(hKey, CStr(k) & ".", 0, 1, PaFn, Len(PaFn))
End If
Next
RegCloseKey(hKey)
End If
End Sub
Public Function LoadRecentFile$(ByVal Idx%)
Q = 0
TempFile = MDIForm1.MnuRecent(Idx).Caption
On Error Resume Next
If Dir(TempFile) = "" Then
MsgBox("Unable to locate " & TempFile, vbExclamation, Ttl & " - Error")
MDIForm1.MnuRecent(Idx).Caption = ""
For k = 1 To 4
If MDIForm1.MnuRecent(k).Visible Then Q = Q + 1
Next
If Q > 1 Then
For k = 1 To Q - 1
If MDIForm1.MnuRecent(k).Caption = "" Then
MDIForm1.MnuRecent(k).Caption = MDIForm1.MnuRecent(k + 1).Caption
MDIForm1.MnuRecent(k + 1).Caption = ""
End If
Next
MDIForm1.MnuRecent(Q).Visible = 0
Else
MDIForm1.MnuRecent(0).Visible = 0
MDIForm1.MnuRecent(1).Visible = 0
End If
LoadRecentFile = ""
Else
LoadRecentFile = MDIForm1.MnuRecent(Idx).Caption
End If