需求: 程序运行后,机器重启。重启完成后,用户程序继续运行,执行未完成的流程
解决方案是:在注册表的开启运行项中添加 用户程序。完成后,删除注册表开机重启项目。
遇到的问题:1. 用户程序放在不正确的路径下,比如 桌面
2. 用户程序路径and名字写错,导致重启机器后,找不到要自动运行的程序。
( p.s. 开发过程中,总会因为疏忽而引起问题,这个时候,需要的不是深入的技术,而是静下心来,一步步的调试,debug。)
public static void addstartupitem(string appname, string executepath)
{
RegistryKey Run = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,
Environment.Is64BitOperatingSystem
? RegistryView.Registry64
: RegistryView.Registry32);
Run=Run.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
if (Run != null)
{
Run.SetValue(appname, "\"" + executepath + "\"");
}
else
{
logger.Info("the run key not exist");
}
Run.Flush();
Run.Close();
return;
}
public static void deletestartupitem(string appname, string executepath)
{
try
{
RegistryKey Run = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,
Environment.Is64BitOperatingSystem
? RegistryView.Registry64
: RegistryView.Registry32);
Run=Run.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
Run.DeleteValue(appname);
Run.Flush();
Run.Close();
}
catch
{
logger.Info("the start item is not exist");
}
return;
}