在编写Winform应用程序时,经常要用到需要自启动的情况,所以收集了一段可以用于自启动的方法。
/// <summary>
/// 开机启动项
/// </summary>
/// <param name="Started">是否启动</param>
/// <param name="name">启动值的名称</param>
/// <param name="path">启动程序的路径,推荐Application.ExecutablePath</param>
private static void StartWithSystem(bool Started, string name, string path)
{
try
{
RegistryKey HKLM = Registry.LocalMachine;
RegistryKey Run = HKLM.CreateSubKey(@"SOFTWAREMicrosoftWindowsCurrentVersionRun");
if (Started == true)
{
try
{
Run.SetValue(name, path);
HKLM.Close();
}
catch (Exception Err)
{
MessageBox.Show(Err.Message.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
try
{
Run.DeleteValue(name);
HKLM.Close();
}
catch (Exception)
{
//
}
}
}
catch (Exception ex)
{
MessageBox.Show("错误:" + ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
于此同时,在设置自启动后,常常需要读取配置文件,之前使用
System.Environment.CurrentDirectory 踩了一个坑,自启动后无法获取配置文件,但是用下面的方法获取配置文件可以避免自启动后找不到程序目录下面的配置文件。
AppDomain.CurrentDomain.BaseDirectory
文章评论