ここではWin32APIを使ってINIファイルを書き込む方法について紹介します。
INIファイルを作成する
検証用に以下のINIファイルを用意します。ファイル名は test.ini とします。
[SECTION1]
KEY1 = value1_1
KEY2 = value1_2
[SECTION2]
KEY1 = value2_1
KEY2 = value2_2
INIファイルを書き込む
次のサンプルプログラムでは、フォームのボタンをクリックしたら、INIファイル(test.ini)の存在を確認し、存在したらセクション「SECTION1」のキー「KEY1」の値を変更します。
Imports System.Runtime.InteropServices
Imports System.Text
Public Class Form1
<DllImport("KERNEL32.DLL", CharSet:=CharSet.Auto)>
Public Shared Function WritePrivateProfileString(
ByVal lpAppName As String,
ByVal lpKeyName As String,
ByVal lpString As String,
ByVal lpFileName As StringBuilder) As Integer
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim fileName As StringBuilder = New StringBuilder()
fileName.Append("C:\temp\test.ini")
If System.IO.File.Exists(fileName.ToString) Then
WritePrivateProfileString("SECTION1", "KEY1", "abcde", fileName)
Else
MessageBox.Show($"{fileName}は存在しません。")
End If
End Sub
End Class
5 ~ 13行目で DllImport属性(System.Runtime.InteropServices名前空間)を利用して、KERNEL32.DLL の中にある WritePrivateProfileString関数を宣言しています。
19行目で WritePrivateProfileString関数を使ってINIファイルを書き込みます。
以下は WritePrivateProfileString関数の引数の説明です。
引数 | 説明 |
---|---|
lpAppName | INIファイル内のセクション名 |
lpKeyName | セクション内のキー名 |
lpString | 書き込みたい文字列 |
lpFileName | INIファイルのパス |
以上、Win32APIを使ってINIファイルを書き込む方法について解説しました。