c#程序已管理員權限啟動、開機自動啟動相關問題


問題背景:

某個c#程序需要已管理員權限啟動,並且有開機啟動的功能。

解決方案:

1、已管理員權限啟動參考c#程序以管理員權限運行

2、開機啟動,參考代碼

public static void SetAutoRun(bool isAutoRun)
        {
            //設置是否自動啟動
            if (isAutoRun)
            {
                string path = System.Windows.Forms.Application.ExecutablePath;
                Microsoft.Win32.RegistryKey rk2 = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(@"Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run");
                rk2.SetValue("App", @"""" + path + @"""");
                rk2.Close();
            }
            else
            {
                Microsoft.Win32.RegistryKey rk2 = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(@"Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run");
                rk2.DeleteValue("App", false);
                rk2.Close();
            }
        }

以上是最終解決方案,下面列出遇到的一些問題

1、為什么使用注冊表HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run。

答:開機啟動常用的方法是添加注冊表開機啟動項,可用的注冊表位置包括

HKEY_CURRENT_USER\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

其中帶WOW6432Node節點的是表示32位程序的

其中如果程序需要已管理員權限啟動,則需要寫入到HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run,如果過不需要已管理員權限啟動,則寫入HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

 

2、其他開機啟動方式

參考博文C# 將程序添加開機啟動的三種方式

 

 

參考:C# 將程序添加開機啟動的三種方式

WIN10 以管理員權限設置開機啟動的問題

c#程序以管理員權限運行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM