首先判断当前用户是否是管理员,如果是管理员,则把当前程序添加到本地计算机开机自启动的注册表中;不是管理员的话,则把当前程序添加到当前用户开机自启动的注册表中。同时,可通过删除注册表的方式,取消开机自启动。
/// <summary>
/// 更改是否开机自启动
/// </summary>
/// <param name="isAutoStartup">是否开机自启动</param>
public static void ChangeAutoStartUp(bool isAutoStartup)
{
string executablePath = Application.ExecutablePath; //可执行文件路径
string programName = Path.GetFileNameWithoutExtension(executablePath); //程序名称
//自启动注册表路径
string registryRunPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
try
{
bool isAdmin = IsAdmin();
//判断当前用户是否是管理员
RegistryKey registryKey = isAdmin
? Registry.LocalMachine.CreateSubKey(registryRunPath)
: Registry.CurrentUser.CreateSubKey(registr