using Microsoft.Win32; using System; using System.Windows; namespace DeviceCenter { class AppUtil { public static bool isAutoStart() { string strName = AppDomain.CurrentDomain.BaseDirectory + "DeviceCenter.exe";//获取要自动运行的应用程序名 string strnewName = strName.Substring(strName.LastIndexOf("\\") + 1);//获取应用程序文件名,不包括路径 RegistryKey registry = Registry.LocalMachine.OpenSubKey($"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);//检索指定的子项 if (registry != null) { if (strName.Equals(registry.GetValue(strnewName))) { return true; } } return false; } public static void enableAutoStart() { string strName = AppDomain.CurrentDomain.BaseDirectory + "DeviceCenter.exe";//获取要自动运行的应用程序名 if (!System.IO.File.Exists(strName))//判断要自动运行的应用程序文件是否存在 return; string strnewName = strName.Substring(strName.LastIndexOf("\\") + 1);//获取应用程序文件名,不包括路径 RegistryKey registry = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);//检索指定的子项 if (registry == null)//若指定的子项不存在 registry = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");//则创建指定的子项 registry.SetValue(strnewName, strName);//设置该子项的新的“键值对” MessageBox.Show("设置完毕"); } public static void disableAutoStart() { string strName = AppDomain.CurrentDomain.BaseDirectory + "DeviceCenter.exe";//获取要自动运行的应用程序名 if (!System.IO.File.Exists(strName))//判断要取消的应用程序文件是否存在 return; string strnewName = strName.Substring(strName.LastIndexOf("\\") + 1);///获取应用程序文件名,不包括路径 RegistryKey registry = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);//读取指定的子项 if (registry == null)//若指定的子项不存在 registry = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");//则创建指定的子项 registry.DeleteValue(strnewName, false);//删除指定“键名称”的键/值对 MessageBox.Show("设置完毕"); } } }