用vb怎样实现写入一个配置peizhi.ini文件,开始把文件放在c盘,里面的值为3,每次我程序启动的时候,就往peizhi.ini文件里面的3减1,当为0的时候,程序的使用次数就没有了,我不需要写注册表实现,就是想用配置文件实现,提供的函数是
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongPrivate Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long麻烦你们帮帮写一个函数实现这样的功能。谢谢!!!!!

解决方案 »

  1.   

    说实在的,你这样用 ini文件来进行限制,跟没有限制一样。
    恐怕只对付得了超级菜的鸟。既然你有这需要,那我不妨给你贴个简单的代码吧。ini文件的内容如下:
    [Settings]
    Key=0代码如下:
    Option ExplicitPrivate Declare Function GetPrivateProfileString Lib "kernel32" _
                      Alias "GetPrivateProfileStringA" ( _
                                     ByVal lpApplicationName As String, _
                                     ByVal lpKeyName As Any, _
                                     ByVal lpDefault As String, _
                                     ByVal lpReturnedString As String, _
                                     ByVal nSize As Long, _
                                     ByVal lpFileName As String) As Long
    Private Declare Function WritePrivateProfileString Lib "kernel32" _
                      Alias "WritePrivateProfileStringA" ( _
                                     ByVal lpApplicationName As String, _
                                     ByVal lpKeyName As Any, _
                                     ByVal lpString As Any, _
                                     ByVal lpFileName As String) As LongPrivate iniFileName As String  '配置文件的名称
    Private Sub Form_Load()
          Dim i&
    ' 设置文件路径
    ' 你自己处理成你的正确路径
       iniFileName = App.Path & "\test.ini"
       i = Val(GetINI("Settings", "Key"))
       If (i > 0) Then
          Call SetINI("Settings", "Key", CStr(i - 1))
       Else
          MsgBox "你的软件已经过期!", 48
          Unload Me
       End If
    End Sub
    ' 获取INI的值
    Private Function GetINI(SectionName As String, KeyWord As String) As String
          Dim strBuffer As String
          Dim lRlt As Long
       strBuffer = Space$(260)
       lRlt = GetPrivateProfileString(SectionName, KeyWord, "", strBuffer, 255, iniFileName)
       If (lRlt > 0) Then
          GetINI = Left$(strBuffer, lRlt)
       Else
          GetINI = ""
       End If
    End Function' 写入INI的值,返回值如果是0表示操作失败
    Private Function SetINI(SectionName As String, KeyWord As String, ValStr As String) As Long
        SetINI = WritePrivateProfileString(SectionName, KeyWord, ValStr, iniFileName)
    End Function
      

  2.   

    ini文件的内那儿:Key=0
    改成 Key=3
      

  3.   

    就这么少的内容写ini, 还不如直接用二进制文件算了,