一.ini文件的读写 Option ExplicitPrivate Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPrivate Declare Function GetPrivateProfileString Lib "Kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, lpKeyName As Any, ByVal lpDefault As String, ByVal lpRetunedString 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 lplFileName As String) As Long Private r As LongPrivate entry As String Function GetFromINI(AppName As String, KeyName As String, FileName As String) As String Dim RetStr As String RetStr = String(255, Chr(0)) GetFromINI = Left(RetStr, GetPrivateProfileString(AppName, ByVal KeyName, "", RetStr, Len(RetStr), FileName))End Function Private Sub Command1_Click() Text1.Text = GetFromINI("注册信息", "序列号", "c:\boot.ini")End Sub Private Sub Command8_Click() EndEnd Sub Private Sub Command2_Click() Text2.Text = GetFromINI("用户信息", "姓名", c:\boot.ini")End SubPrivate Sub Command4_Click() entry$ = Text1.Text r = WritePrivateProfileString("注册信息", "序列号", entry, c:\boot.ini") If r <> 1 Then MsgBox "写序列号出错!"End Sub Private Sub Command5_Click() entry = Text2.Text r = WritePrivateProfileString("用户信息", "姓名", entry, c:\boot.ini") If r <> 1 Then MsgBox "写姓名出错!"End Sub 二、删除ini文件中的小字名或关键字 1.如何删除ini文件中指定区段和指定项: [abc1] a=123 b=456 [abc2] | a=111 |删除此三行 b=222 | [abc3] a=888 b=999 其实WritePrivateProfileSection函数就可以完成这个工作。这函数的第二个参数如果为空就可以删除掉所有键。 如果你这样调用该API: Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Long Private Sub Command1_Click() WritePrivateProfileSection "abc2", "", "my.INI" End Sub 则运行后,.ini文件中abc2下将没有任何值,但[abc2]仍然有。 而如果这样调用该函数(请注意声明不同) Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As Any, ByVal lpFileName As String) As Long Private Sub Command1_Click() WritePrivateProfileSection "PanelSetup", 0&, "myCADX2.INI" End Sub 则运行后,.ini文件中连abc2也没有了。 2.如何删除ini文件里某一键?声明:Declare Function WritePrivateProfileString& Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As String, ByVal lpFileName As String) 说明: lpApplicationName=小节名 lpKeyName=vbNullString 删除lpApplicationName 小节所有项 lpString=vbNullString 删除lpKeyName项所有串 lpFileName =初始化文件的名字 实例:Private Sub Command4_Click() Print WritePrivateProfileString("BOOT", "Shell", vbNullString, "tmp1.ini") '删除Shell Print WritePrivateProfileString("BOOT", vbNullString, vbNullString, "tmp1.ini") '删除BOOT End Sub

评论