要将编写的程序设置成随系统启动,可以通过读写注册表操作实现。有几个要注意的地方:
一是引入Microsoft.Win32这个命名空间,此空间用来提供操作注册表的类—— Registry和RegistryKey;
二是在win7、win10等系统中,系统会拒绝对注册表“LOCAL_MACHINE”的操作,提示“对注册表项“HKEY_LOCAL_MACHINE\...”的访问被拒绝。”这时可以通过对“HKEY_CURRENT_USER”的操作实现对当前用户的随系统启动功能。
三是在“HKEY_CURRENT_USER”中,设置随系统启动的地址在“HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”中。
代码如下:
using System.Windows.Forms;
using Microsoft.Win32;
private void SetAutoRun() {
//获取当前应用程序的可执行文件路径(包括可执行文件名称)
//为了避免路径中的“/”和“\”不统一,所以通过Replace函数统一成“\”
string appPath = Application.ExecutablePath.Replace('/','\\');
//获取文件名
string appName = appPath.Substring(appPath.LastIndexOf("\\")+1);
//通过在注册表系统启动项“HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”中写入当前程序
RegistryKey rKey = Registry.CurrentUser.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
rKey.SetValue(appName,appPath);
}