Windows 初始化文件的修改
發表于:2007-07-14來源:作者:點擊數:
標簽:
Windows 應用程序的初始化文件(INI)對應用程序缺省設置起著重要的作用,初始化文件可以采用文本編輯器修改,但這種方法容易出現錯誤,不易由用戶操作。下面介紹用 VB 實現修改初始化文件的方法。 1?初始化文件的結構與特點 Windows應用程序初始化文件中通常
Windows應用程序的初始化文件(INI)對應用程序缺省設置起著重要的作用,初始化文件可以采用文本編輯器修改,但這種方法容易出現錯誤,不易由用戶操作。下面介紹用
VB實現修改初始化文件的方法。
1?初始化文件的結構與特點
Windows應用程序初始化文件中通常設置應用程序的運行環境,確定應用程序變量的缺省設置,初始化文件既包含Windows本身的兩個INI文件,也包括應用程序的初始化文件。如:win.ini、system.ini、ucdos.ini、
vb.ini等。
其中,ucdos.ini、 vb.ini分別為希望公司的UCDOS和Visual Basic的初始化文件,這些初始化文件一般都是由應用程序和關鍵詞構成,文件中內容的格式采用下面的通用格式:
[程序名稱]
關鍵詞=取值
例如,在system.ini中有一段內容設置非
WINDOWS應用程序的字體,即:
〔Non WindowsApp〕
FontChangeEnable=1
其中,Non WindowsApp為應用程序名,FontChangeEnable為關鍵詞,1為取值。
2?與初始化有關的API函數
Windows95中的動態鏈接庫Kernel.exe包含了六個函數,可以對INI文件進行操作,其中GetProfileInt、GetPrivateProfileInt、GetProfileString和GetPrivateString四個函數可以從INI文件中基于應用程序名和關鍵詞的行獲得信息。WritePrivateProfileString和WriteProfileString兩個函數可以在INI文件中修改或創建文件中的有關行。
在VB應用程序中應按下面的方式在全局模塊中進行聲明。
Declare Function GetProfilelnt Lib ″Kernel″ (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal nDefault As Integer) As Integer
Declare Function GetProfileString Lib ″Kernel″(ByVal lpAppName As String, lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedsring As String, ByVal nSize As lnteger) As Integer
Declare Function WriteProfileString Lib ″Kernel″(ByVal lpApplicationName As String, lpKeyName As Any, lpString As Any) As lnteger
Declare Function GetPrivateProfilelnt Lib ″Kernel″ (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As lnteger, Byval lpFileName As String) As lnteger
Declare Function GetPrivateProfileString Lib ″Kernel″(ByVal lpApplicationName As String, lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As String, ByVal nSize As Integer, Byval lpFileName As String) As Integer
Declare Function WriteProfileString Lib ″Kernel″(ByVal lpApplicationName As String, lpKeyName As Any, lpString As Any) As lnteger
其中:lpApplicationName$為應用程序名稱;
lpKeyName$為關鍵詞;
nDefault%為關鍵詞指定的缺省值;
lpFileName$為初始化文件名稱;
lpDefault$為關鍵詞指定的缺省字符串;
lpReturnString$為接受返回值指定字符的緩沖變量;
nSize%指定拷貝到緩沖變量的字符個數;
lpString$為新的關鍵詞指定字符串。
上面的聲明可以從VB目錄上的winapi中文件win32?txt獲得,可以通過剪貼板直接拷貝到VB中。
3?修改初始化文件實例
Windows軟件包程序管理器(PROGRAM?EXE),初始化文件為PROGRAM.INI,缺省內容為
[Settings]
……
order=6 3 2 4 7 1
……
其中,order指定程序組的排列順序,下面的程序把Order的值改為“2 3 4 1 7 6 5”,并使用SHELL函數啟動程序管理器。
Private Sub form_Click()
lpAppName$ = ″Settings″
lpKeyName% = ″Order″
lpString$ = ″2 3 4 1 7 6 5 ″
lpFileName$ = ″progman.ini″
j% = WritePrivateProfileString(lpAppName$, lpKeyName$ =″Order″, lpString$ = ″2 3 4 1 7 6 5″, lpFileName$)
j% = Shell(″progman.exe″, 1)
End Sub
原文轉自:http://www.anti-gravitydesign.com