写windows工具时,要进行电源管理,需要重启与开关机OS,这样工具就需要自动启动。查了网上很多资料,修改注册列表就可以。
但是,复制几个网站的代码并自己修改都发现不行,最后发现脚本之家这段代码才成功:(http://www.jb51.net/article/85817.htm)
//此方法把启动项加载到注册表中
//获得应用程序路径
string strAssName = Application.StartupPath + @"\" + Application.ProductName + @".exe";
//获得应用程序名
string ShortFileName = Application.ProductName;
RegistryKey rgkRun = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (rgkRun == null)
{rgkRun = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
}
rgkRun.SetValue(ShortFileName, strAssName);
//此删除注册表中启动项
//获得应用程序名
string ShortFileName = Application.ProductName;
RegistryKey rgkRun = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (rgkRun == null)
{rgkRun = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
}
rgkRun.DeleteValue(ShortFileName, false);
获取程序启动路径
检查发现是rgkRun.SetValue用错,应该按上面代码,其他网站,没解释这个怎么用,搞混了。
当重启启动程序后,发现程序不能读取上次保存的log文件,发现是路径有问题,还得用上面程序代码获取文件路径:
string ShortFileName = Application.ProductName;
string strAssName = Application.StartupPath + @"\" + Application.ProductName + @".exe";