Dim path As String '定义文件入境
path = App.path & "\" & "cishu.txt" '得到入境
On Error GoTo e '判断文件是否出在,不出在跳出创建文件
Open path For Input As #1 '读文件
Input #1, s1
Close #1
If s1 > 3 Then ' 判断是否大于次数
MsgBox "你的试用其,已经到期", vbCritical, "提示"
End
Else
Form1.Caption = "你是第" & s1 & "次使用"
End If
e:
If s1 = "" Then
Open path For Output As #1
Write #1, 1
Close #1
Form1.Caption = "你是第1次使用"
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim path As String
path = App.path & "\" & "cishu.txt"
Open path For Input As #1
Input #1, cishu
Close #1
cishu = cishu + 1
Open path For Output As #1
Write #1, cishu
Close #1
以下是模块中的内容,读字串形注册表项照抄即可:
'API声明
Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long
Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
'以下是设置键值子程序
Sub gpvSetKeyStringValue(ByVal plKey As Long, ByVal psKey As String, ByVal psSubKey As String, ByVal psKeyValue As String)
Dim glStatus As Long
Dim llKeyID As Long
glStatus = 0&
If Len(psKey) = 0 Then
glStatus = -1002
Exit Sub
End If
glStatus = RegOpenKey(plKey, psKey, llKeyID)
If glStatus = 0& Then
If Len(psKeyValue) = 0 Then
glStatus = RegSetValueEx(llKeyID, psSubKey, 0&, 1, 0&, 0&)
Else
glStatus = RegSetValueEx(llKeyID, psSubKey, 0&, 1, ByVal psKeyValue, LenB(StrConv(psKeyValue, vbFromUnicode)))
End If
glStatus = RegCloseKey(llKeyID)
End If
End Sub
'以下都是窗体中的代码了:
'读出注册表键值
'下面假设要读HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\PPP中的键值
Dim ,a As Long,rc As Long, hKey As Long, KeyValType As Long, KeyValSize As Long, tmpval As String
a = RegOpenKeyEx(&H80000002, "Software\Microsoft\Windows\CurrentVersion", 0, 131135, hKey)
'上行&H80000002指主键HKEY_LOCAL_MACHINE,Software\Microsoft\Windows\CurrentVersion就是子键
tmpval = String$(1024, 0): KeyValSize = 1024
rc = RegQueryValueEx(hKey, "PPP", 0, KeyValType, tmpval, KeyValSize)'其中PPP是要读的项目名
a = RegCloseKey(hKey) '关闭注册表
If InStr(tmpval, Chr(0)) > 0 Then '整理数据,tmpval就是取出的键值字串
tmpval = Left(tmpval, InStr(tmpval, Chr(0)) - 1)
Else
tmpval = Left(tmpval, InStr(tmpval, Chr(0)))
End If