using Microsoft.Win32;
RegistryKey regKey = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN",true);
regKey.SetValue ("AutoSendLogMail", ExefileName);
regKey.DeleteValue ("AutoSendLogMail",false);
但更好的方法是写到XML文件中,优点是修改和移植方便,并且可以将元素和类的属性进行映射,序列化与反序列化;
于是参考.Text中相关的类写了一个读写XML文件的类
用于WinForm程序
using System;
using System.IO;
using System.Xml.Serialization;
using System.Xml;
using System.Configuration;
namespace SendLogMail
{
public abstract class SystemConfiguration
{
public static SystemSettings GetSettings()
{
FileStream fs=null;
string FileName="";
SystemSettings data;
XmlSerializer serializer = new XmlSerializer(typeof(SystemSettings));
try
{
FileName = System.Windows.Forms.Application.StartupPath+"\\"+GetSettingsFile();
fs = new FileStream(FileName, FileMode.OpenOrCreate);
data = (SystemSettings)serializer.Deserialize(fs);
}
catch (Exception err)
{
System.Windows.Forms .MessageBox.Show (err.Message+"系统配置文件出错:\r\n"+FileName);
data = new SystemSettings();
}
finally
{
if (fs!=null) { fs.Close();}
}
return data;
}
public static void SaveSettings(SystemSettings data)
{
FileStream fs=null;
string FileName="";
XmlSerializer serializer = new XmlSerializer (typeof(SystemSettings));
try
{
FileName = System.Windows.Forms.Application.StartupPath+"\\"+GetSettingsFile();
fs = new FileStream(FileName, FileMode.Create);
serializer.Serialize(fs, data);
}
catch (Exception err)
{
System.Windows.Forms .MessageBox.Show (err.Message+"系统配置文件出错:\r\n"+FileName);
}
finally
{
if (fs!=null)
{
fs.Close();
}
}
}
private static string GetSettingsFile()
{
return ConfigurationSettings.AppSettings["SystemSettingsFile"];
}
}
public class SystemSettings
{
private string _txtSMTPHost;
private string _txtSPSHost;
[XmlElement]
public string txtSMTPHost
{
get { return _txtSMTPHost; }
set { _txtSMTPHost = value; }
}
[XmlElement]
public string txtSPSHost
{
get { return _txtSPSHost; }
set { _txtSPSHost = value; }
}
using System.IO;
using System.Xml.Serialization;
using System.Xml;
using System.Configuration;
namespace SendLogMail
{
public abstract class SystemConfiguration
{
public static SystemSettings GetSettings()
{
FileStream fs=null;
string FileName="";
SystemSettings data;
XmlSerializer serializer = new XmlSerializer(typeof(SystemSettings));
try
{
FileName = System.Windows.Forms.Application.StartupPath+"\\"+GetSettingsFile();
fs = new FileStream(FileName, FileMode.OpenOrCreate);
data = (SystemSettings)serializer.Deserialize(fs);
}
catch (Exception err)
{
System.Windows.Forms .MessageBox.Show (err.Message+"系统配置文件出错:\r\n"+FileName);
data = new SystemSettings();
}
finally
{
if (fs!=null) { fs.Close();}
}
return data;
}
public static void SaveSettings(SystemSettings data)
{
FileStream fs=null;
string FileName="";
XmlSerializer serializer = new XmlSerializer (typeof(SystemSettings));
try
{
FileName = System.Windows.Forms.Application.StartupPath+"\\"+GetSettingsFile();
fs = new FileStream(FileName, FileMode.Create);
serializer.Serialize(fs, data);
}
catch (Exception err)
{
System.Windows.Forms .MessageBox.Show (err.Message+"系统配置文件出错:\r\n"+FileName);
}
finally
{
if (fs!=null)
{
fs.Close();
}
}
}
private static string GetSettingsFile()
{
return ConfigurationSettings.AppSettings["SystemSettingsFile"];
}
}
public class SystemSettings
{
private string _txtSMTPHost;
private string _txtSPSHost;
[XmlElement]
public string txtSMTPHost
{
get { return _txtSMTPHost; }
set { _txtSMTPHost = value; }
}
[XmlElement]
public string txtSPSHost
{
get { return _txtSPSHost; }
set { _txtSPSHost = value; }
}