C# code///
/// 写注册表中字串(REG_SZ)数据
///
/// HKLM\SOFTWARE的子项名称
/// \SOFTWARE\SOFT_Dir_Name\的子项的名称
/// Sub_Dir_Name的子键名
/// 写入Key_Name的键值
public void SetRegeditData(String HKLM_SOFT_Dir_Name, String Sub_Dir_Name, String Key_Name, String Key_Value)
{
RegistryKey hklm = Registry.LocalMachine.OpenSubKey("SOFTWARE", true);
RegistryKey software;
if (IsRegeditDirExist(HKLM_SOFT_Dir_Name))
{
software = hklm.OpenSubKey(HKLM_SOFT_Dir_Name, true);
}
else
{
software = hklm.CreateSubKey(HKLM_SOFT_Dir_Name);
}
RegistryKey aimdir = software.CreateSubKey(Sub_Dir_Name);
aimdir.SetValue(Key_Name, Key_Value);
}
///
/// 判断目录是否存在
///
/// HKLM\SOFTWARE下是否存在该子项
/// true or false
public bool IsRegeditDirExist(String HKLM_SOFT_Dir_Name)
{
bool _exit = false;
string[] subkeyNames;
RegistryKey hklm = Registry.LocalMachine.OpenSubKey("SOFTWARE", true);
subkeyNames = hklm.GetSubKeyNames();
foreach (string DirName in subkeyNames)
{
if (DirName == HKLM_SOFT_Dir_Name)
{
_exit = true;
return _exit;
}
}
return _exit;
}
------解决方案--------------------
... 用什么注册表,App.config就可以了嘛。C# codestring strIsFirstRun = "false";
bool isFirstRun = false;
strIsFirstRun = ConfigurationManager.AppSettings("IsFirstRun");
if (string.IsNullOrEmpty(strIsFirstRun) || strIsFirstRun.ToLower() != "true")
{
isFirstRun = false;
}
else
{
isFirstRun = true;
}
strIsFirstRun = "false";
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings.Remove("IsFirstRun");
config.AppSettings.Settings.Add("IsFirstRun", strIsFirstRun);
config.Save();