寫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";