2012年12月5日 星期三

[技巧] 透過 Win32API 的 kernel32.dll 來讀寫ini文件(設定檔)

程式:DayActivateFormWinApp.exe
Imports System.Runtime.InteropServices
Imports System.Text
'主程式
Public Class Form1
    Public Shared AppIniPath = "C:\DayActivateFormWinApp.ini"

    Private Sub BtnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOK.Click
        Win32API.EnumWindowsDllImport(New Win32API.EnumWindowsCallback(AddressOf FillActiveWindowsList), 0)
        Exit Sub

        Dim hwnd As IntPtr = Win32API.FindWindow("DayCensorWinApp.DayLigoMain", vbNullString)
        If hwnd = IntPtr.Zero Then
            MsgBox("Not found!")
        Else
            MsgBox("Found!")

            Win32API.WritePrivateProfileString("DayLigoMain", "程式ID", My程式ID, AppIniPath)
            Win32API.WritePrivateProfileString("DayLigoMain", "MySqlWhere", MySqlWhere, AppIniPath)

            Exit Sub
        End If
    End Sub
End Class

----分隔線----

Imports System.Runtime.InteropServices
Imports System.Text
' 用來包裝 Windows 32 API 常式和函式的類別。
Public Class Win32API

#Region "修改INI檔中內容"
    ''' <summary>
    ''' 修改INI檔中內容
    ''' </summary>
    ''' <param name="lpApplicationName">欲在其中寫入的節點名稱</param>
    ''' <param name="lpKeyName">欲設置的項名</param>
    ''' <param name="lpString">要寫入的新字串</param>
    ''' <param name="lpFileName">INI檔案名</param>
    ''' <returns>非零表示成功,零表示失敗</returns>
    <DllImport("kernel32")> _
    Public Shared Function WritePrivateProfileString(ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Integer
    End Function
#End Region

End Class

文件:DayActivateFormWinApp.ini
[DayLigoMain]
程式ID=19
MySqlWhere=3

參考:
VB.net INI 讀寫
VB.net GetPrivateProfileString WritePrivateProfileString 读写INI
[C#.Net]调用kernel32读写ini文件
[C++]WritePrivateProfileString function (Windows)
c# extern 关键字 和 kernel32.dll中的api:WritePrivateProfileString,GetPrivateProfileString
writeprivateprofilestring (kernel32)
getprivateprofilestring (kernel32)
啟動應用程式並且傳入參數

VB.Net 讀取 INI
VB.NET配置文件存储方案-ini文件及ini文件的读写方法
用 vb.net 读写 ini 文件

Ini 檔案的讀取與寫入類別

应用程序中使用配置档

沒有留言:

張貼留言