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 Long
Public 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
'FileName:Ini文件
'PathName:小节名
'KeyName:值名
'WriteValue:值
Public Function WriteIni(pathname As String, _
        KeyName As String, _
        WriteValue As String) As Long
    Dim Rc As Long
    Dim Filename As String
    Filename = App.Path & "\Config.ini"
    Rc = WritePrivateProfileString(pathname, KeyName, WriteValue, Filename)
    
    WriteIni = Rc
    
End Function'FileName:Ini文件
'PathName:小节名
'KeyName:值名
'BackValue:返回值
'Default:默认字符
'Public Function ReadIni(pathname As String, _
        KeyName As String, _
        BackValue As String, _
        Optional Default As String = "") As Long
Public Function ReadIni(pathname As String, _
        KeyName As String, _
        Optional Default As String = "") As Long
    Dim Rc As Long
    Dim TempNum As String
    Dim TempStr As String
    Dim Filename As String
    
    Filename = App.Path & "\Config.ini"
    
    TempStr = String$(255, Chr$(0))
    TempNum = 255
    
    Rc = GetPrivateProfileString(pathname, KeyName, Default, TempStr, TempNum, Filename)
    
    If Rc <> 0 Then
        BackValue = Left$(TempStr, TempNum)
        
    End If
    
    'ReadIni = Rc
    ReadIni = BackValue
    
End Function

解决方案 »

  1.   

    '读写ini
    Public Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
    Public 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
    Public Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
    Public 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
    '写ini文件
    Public Sub WriteToIni(ByVal Filename As String, ByVal Section As String, ByVal Key As String, ByVal Value As String)
        Dim buff As String * 128
        buff = Value + Chr(0)
        WritePrivateProfileString Section, Key, buff, Filename
    End Sub'读ini文件
    Public Function ReadFromIni(ByVal Filename As String, ByVal Section As String, ByVal Key As String) As String
        Dim i As Long
        Dim buff As String * 128
        GetPrivateProfileString Section, Key, "", buff, 128, Filename
        i = InStr(buff, Chr(0))
        ReadFromIni = Trim(Left(buff, i - 1))
    End Function
    '将以上放在模块(bas)中...
    '下面是form_load中'读INI文件
    Dim inifilename As String
    inifilename = App.EXEName & ".ini"
    If Right(App.Path, 1) = "\" Then ' 若 App.Path 为根目录
    inipath = App.Path + inifilename
    Else
    inipath = App.Path + "\" + inifilename
    End If
    On Error Resume Next
    multiple = ReadFromIni(inipath, "程序控制", "允许多重启动")'以下在form_unload中
    Call WriteToIni(inipath, "游戏修改", "偏移量", gameoff)
    具体请看http://skinart.y365.com/myprogram/gt.zip
      

  2.   

    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 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 Long
    Private Sub Form_Load()
        Dim Ret As String, NC As Long
        'Write the setting to the file (c:\test.ini) under
        '   Project1 -> Keyname
        WritePrivateProfileString App.Title, "KeyName", "This is the value", "c:\test.ini"
        'Create a buffer
        Ret = String(255, 0)
        'Retrieve the string
        NC = GetPrivateProfileString(App.Title, "KeyName", "Default", Ret, 255, "C:\test.ini")
        'NC is the number of characters copied to the buffer
        If NC <> 0 Then Ret = Left$(Ret, NC)
        'Show our string
        MsgBox Ret
        'Delete the file
        Kill "c:\test.ini"
    End Sub