C# winform程序設置開機啓動,當讀取配置文件,或者加載圖片如果設置的是相對路徑時,開機啓動時會出現問題(直接運程程序是沒問題的)。這是因爲開機啓動的程序要使用絕對路徑,相對路徑不行。我們可以通過Application .StartupPath屬性經過處理得到文件的絕對路徑問題就解決了。
C# 通過讀寫註冊表來設置開機啓動想方法很簡單,網上很多:
- /// <summary>
- /// 開機啓動項
- /// </summary>
- /// <param name="Started">是否啓動</param>
- /// <param name="name">啓動值的名稱</param>
- /// <param name="path">啓動程序的路徑</param>
- public void RunWhenStart(bool Started, string name, string path)
- {
- RegistryKey HKLM = Registry.LocalMachine;
- RegistryKey Run = HKLM.CreateSubKey(@"SOFTWARE/Microsoft/Windows/CurrentVersion/Run");
- if (Started == true)
- {
- try
- {
- Run.SetValue(name, path);
- HKLM.Close();
- }
- catch//沒有權限會異常
- {}
- }
- else
- {
- try
- {
- Run.DeleteValue(name);
- HKLM.Close();
- }
- catch//沒有權限會異常
- {}
- }
- }
或者直接:
- //添加啓動
- RegistryKey ms_run = Registry.LocalMachine.OpenSubKey("SOFTWARE//Microsoft//Windows//CurrentVersion//Run", true);
- ms_run.SetValue("mistysoft", Application.ExecutablePath.ToString());
- //刪除啓動(設爲控,註冊表項還在)
- RegistryKey ms_run = Registry.LocalMachine.OpenSubKey("SOFTWARE//Microsoft//Windows//CurrentVersion//Run", true);
- ms_run.SetValue("mistysoft", "");