using Milimoe.FunGame.Core.Library.Constant; using System.Runtime.InteropServices; using System.Text; namespace Milimoe.FunGame.Core.Api.Utility { public partial class INIHelper { /* * 声明API函数 */ [LibraryImport("kernel32", StringMarshalling = StringMarshalling.Utf16)] private static partial long WritePrivateProfileString(string section, string key, string val, string filePath); [LibraryImport("Kernel32.dll", EntryPoint = "GetPrivateProfileStringW", StringMarshalling = StringMarshalling.Utf16)] private static partial int GetPrivateProfileString(string section, string key, string def, char[] val, int size, string filePath); /// /// 写入ini文件 /// /// Section /// 键 /// 值 /// 文件名,缺省为FunGame.ini public static void WriteINI(string Section, string Key, string Value, string FileName = @"FunGame.ini") { WritePrivateProfileString(Section, Key, Value, Environment.CurrentDirectory.ToString() + @"\" + FileName); } /// /// 读取ini文件 /// /// Section /// 键 /// 文件名,缺省为FunGame.ini /// 读取到的值 public static string ReadINI(string Section, string Key, string FileName = @"FunGame.ini") { char[] val = new char[2048]; _ = GetPrivateProfileString(Section, Key, "", val, 2048, Environment.CurrentDirectory.ToString() + @"\" + FileName); string? read = new(val); return read != null ? read.Trim('\0') : ""; } /// /// 查询ini文件是否存在 /// /// 文件名,缺省为FunGame.ini /// 是否存在 public static bool ExistINIFile(string FileName = @"FunGame.ini") { return File.Exists(Environment.CurrentDirectory.ToString() + @"\" + FileName); } /// /// 初始化ini模板文件 /// public static void Init(FunGameInfo.FunGame FunGameType) { switch (FunGameType) { case FunGameInfo.FunGame.FunGame_Core: case FunGameInfo.FunGame.FunGame_Core_Api: case FunGameInfo.FunGame.FunGame_Console: case FunGameInfo.FunGame.FunGame_Desktop: /** * Config */ WriteINI("Config", "AutoConnect", "true"); WriteINI("Config", "AutoLogin", "false"); /** * Account */ WriteINI("Account", "UserName", ""); WriteINI("Account", "Password", ""); WriteINI("Account", "AutoKey", ""); break; case FunGameInfo.FunGame.FunGame_Server: /** * Server */ WriteINI("Server", "Name", "FunGame Server"); WriteINI("Server", "Password", ""); WriteINI("Server", "Describe", "Just Another FunGame Server."); WriteINI("Server", "Notice", "This is the FunGame Server's Notice."); WriteINI("Server", "Key", ""); WriteINI("Server", "Status", "1"); /** * Socket */ WriteINI("Socket", "Port", "22222"); WriteINI("Socket", "MaxPlayer", "20"); WriteINI("Socket", "MaxConnectFailed", "0"); /** * MySQL */ WriteINI("MySQL", "DBServer", "localhost"); WriteINI("MySQL", "DBPort", "3306"); WriteINI("MySQL", "DBName", "fungame"); WriteINI("MySQL", "DBUser", "root"); WriteINI("MySQL", "DBPassword", "pass"); break; } } } }