写了一个读去ini的小程序,代码如下:写了以下的一个读取ini文件的小程序,代码如下: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 LongPrivate Sub cmdOK_Click()
Dim success As Long
success = WritePrivateProfileString("帐号资料", "ID", UserName.Text, "sgyscfg.ini")
success = WritePrivateProfileString("帐号资料", "PW", PassWord.Text, "sgyscfg.ini")
End SubPrivate Sub Form_Load()
Dim ret As Long
Dim buff As String
buff = String(255, 0)
ret = GetPrivateProfileString("帐号资料", "UserName", "", buff, 256, "sgyscfg.ini")
UserName.Text = buff
buff = String(255, 0)
ret = GetPrivateProfileString("帐号资料", "PassWord", "", buff, 256, "sgyscfg.ini")
PassWord.Text = buff这样的代码,程序生成后,sgyscfg.ini文件是存在了c:\windows文件夹下了,如果把"sgyscfg.ini"改成"\sgyscfg.ini"就保存到了c:\下,怎样也弄不到保存在执行文件所在的文件夹里,求助!!另外想问下,如果需要勾选单算框才保存,不勾选单选框就不保存,而且只要第一次勾选了单选框,以后启动软件,该单选框都自动选上,该怎么写代码?(类似TM的保存密码功能)

解决方案 »

  1.   

    1调用时使用绝对路径,app.path+"\sgyscfg.ini"
    2可以在ini文件里写入一个键值来记录单选按钮的状态,每次运行时去检查键值就可以了
      

  2.   

    Private Sub cmdOK_Click()
    Dim success As Long
    success = WritePrivateProfileString("帐号资料", "ID", UserName.Text, app.path+"sgyscfg.ini")
    success = WritePrivateProfileString("帐号资料", "PW", PassWord.Text, app.path+"sgyscfg.ini")
    End SubPrivate Sub Form_Load()
    Dim ret As Long
    Dim buff As String
    buff = String(255, 0)
    ret = GetPrivateProfileString("帐号资料", "UserName", "", buff, 256, app.path+"sgyscfg.ini")
    UserName.Text = buff
    buff = String(255, 0)
    ret = GetPrivateProfileString("帐号资料", "PassWord", "", buff, 256, app.path+"sgyscfg.ini")
    PassWord.Text = buff
      

  3.   

    网上有不少操作INI文件的例子,找一个看一下就明白了
      

  4.   

    不错...,发现上面有两个问题
    1.App.Path 后面加个 "\",
    2.写了什么就读什么,要不读不出来
      

  5.   

    1 别忘了"\":
    success = WritePrivateProfileString("帐号资料", "ID", UserName.Text, App.Path & "\sgyscfg.ini")
    success = WritePrivateProfileString("帐号资料", "PW", PassWord.Text, App.Path & "\sgyscfg.ini")ret = GetPrivateProfileString("帐号资料", "UserName", "", buff, 256, App.Path & "\sgyscfg.ini")
    ret = GetPrivateProfileString("帐号资料", "PassWord", "", buff, 256, App.Path & "\sgyscfg.ini")

    success = WritePrivateProfileString("帐号资料", "SaveInfo", CStr(Check1.Value), App.Path & "\sgyscfg.ini")buff = String(255, 0)
    ret = GetPrivateProfileString("帐号资料", "SaveInfo", "", buff, 256, App.Path & "\sgyscfg.ini")
    If buff > "0" Then Check1.Value = vbChecked