通过读写注册表方式设置:
注册表位置:HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
注册表写入之后的图:
写入注册表会出现在任务管理器中的启动列表:
代码如下:
public static class StartUpHelper
{
private static string PathExeName;
private const string ApplicationName = "CipherSaas";
static StartUpHelper()
{
PathExeName = $"\"{Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Process.GetCurrentProcess().MainModule.FileName)}\"";
}
/// <summary>
/// 是否开机启动本exe
/// </summary>
/// <param name="RunOnStartup"></param>
internal static void RunStartup(Boolean RunOnStartup)
{
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (RunOnStartup == true)
{
key.SetValue(ApplicationName, PathExeName);//指定他的程序名称,获取当前程序的exe的路径
}
else
{
key.DeleteValue(ApplicationName, false);
}
}
/// <summary>
/// 是否已经设置自动启动
/// </summary>
/// <returns></returns>
internal static bool IsRunStartUp()
{
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", false);
object result = key.GetValue(ApplicationName);
return result != null && Equals(result.ToString(), PathExeName);
}
}