ここでは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関数の引数の説明です。

引数説明
lpAppNameINIファイル内のセクション名
lpKeyNameセクション内のキー名
lpString書き込みたい文字列
lpFileNameINIファイルのパス


以上、Win32APIを使ってINIファイルを書き込む方法について解説しました。