RustyHearts-Launcher/RHLauncher.Helper/IniFile.cs
2025-04-29 17:14:19 -03:00

44 lines
1.7 KiB
C#

using System.Runtime.InteropServices;
using System.Text;
namespace RHLauncher.RHLauncher.Helper
{
public partial class IniFile
{
private readonly string _iniFilePath;
[LibraryImport("kernel32", EntryPoint = "WritePrivateProfileStringW", StringMarshalling = StringMarshalling.Utf16)]
private static partial long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32", CharSet = CharSet.Unicode)]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
public IniFile(string iniFileName)
{
string appDirectory = AppDomain.CurrentDomain.BaseDirectory;
_iniFilePath = Path.Combine(appDirectory, iniFileName);
if (!File.Exists(_iniFilePath))
{
//Default api url
WritePrivateProfileString("Info", "ServerURL", "http://127.0.0.1", _iniFilePath);
//Default client service
WritePrivateProfileString("Info", "Service", "jpn", _iniFilePath);
//Default launcher language
WritePrivateProfileString("Launcher", "Lang", "en", _iniFilePath);
}
}
public string ReadValue(string section, string key)
{
StringBuilder sb = new(255);
_ = GetPrivateProfileString(section, key, "", sb, 255, _iniFilePath);
return sb.ToString();
}
public void WriteValue(string section, string key, string value)
{
WritePrivateProfileString(section, key, value, _iniFilePath);
}
}
}