using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Windows.Forms; using System.Runtime.InteropServices; // 调用API using System.Threading; // Monitor // using System.Collections; namespace BoyangMIS ... { class IniFile ...{ public string path = Environment.CurrentDirectory.ToString()+@"parameter.ini"; private object myLock = new object(); public IniFile() ...{ } [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); public void IniWriteValue(string Section, string Key, string Value) ...{ Monitor.Enter(myLock); try ...{ WritePrivateProfileString(Section, Key, Value, this.path); } finally ...{ Monitor.Exit(myLock); } } public string IniReadValue(string Section, string Key) ...{ StringBuilder temp = new StringBuilder(255); int i = GetPrivateProfileString(Section, Key, "", temp, 255, this.path); try ...{ if (temp != null) ...{ if (temp.ToString().Trim() != "") return temp.ToString().Trim(); else return "1"; // throw new Exception("[" + Section + "]:" + Key + " is space"); } //else //{ // throw new Exception("[" + Section + "]:" + Key + " -- can't find this key"); //} return "1"; } catch (Exception ex) ...{ MessageBox.Show(ex.ToString()); return "1"; } } }}