在网上找的代码都是直接设置的,放到 Form1_Load
中程序每次启动就注册感觉怪怪的
就想办法如何在注册前先判断程序有没有注册过,通过F12找到了GetValueNames
方法。
private void autorun()
{
//获取程序路径
string execPath = Application.ExecutablePath;
bool isexc = false;
try
{
RegistryKey RKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
//设置自启的程序叫获取目录下的程序名字
string[] ar = RKey.GetValueNames();
foreach (string st in ar)
{
if(st.Equals("test"))
{
isexc = true;
}
}
if (!isexc)
{
//设置自启的程序叫test
RKey.SetValue("test", execPath);
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}