#region Usings using System; using System.IO; using System.Runtime.InteropServices; using System.Text; #endregion #region INI File Parser //modified from https://www.codeproject.com/articles/1966/an-ini-file-handling-class-using-c?fid=425860&df=90&mpp=25&prof=True&sort=Position&view=Normal&spc=Relaxed&fr=51 public class INIFile { public string path; [DllImport("kernel32")] private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); [DllImport("kernel32")] private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); /// /// INIFile Constructor. /// /// public INIFile(string INIPath) { path = INIPath; } /// /// Write Data to the INI File /// /// /// Section name /// /// Key Name /// /// Value Name public void IniWriteValue(string Section, string Key, string Value) { WritePrivateProfileString(Section, Key, Value, path); } /// /// Read Data Value From the Ini File /// /// /// /// /// public string IniReadValue(string Section, string Key, string DefaultValue = "") { if (IniValueExists(Key)) { StringBuilder temp = new StringBuilder(255); int i = GetPrivateProfileString(Section, Key, "", temp, 255, path); return temp.ToString(); } else { IniWriteValue(Section, Key, DefaultValue); return DefaultValue; } } public bool IniValueExists(string SearchString) { try { string[] lines = File.ReadAllLines(path); foreach(string line in lines) { if (line.Contains(SearchString)) { return true; } } return false; } #if URI || LAUNCHER || CMD || BASICLAUNCHER catch (Exception ex) { GlobalFuncs.LogExceptions(ex); #else catch (Exception) { #endif return false; } } } #endregion