C#設置程序開機啟動的實現(xiàn)示例
1:獲取當前用戶:
System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);2:判斷當前用戶是否是管理員如果是則直接啟動否則通過Process啟動:
(如果不這樣處理直接使用非admin權(quán)限對注冊表進行編輯操作程序?qū)螽惓?
if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator))
{
//如果是管理員則直接啟動
Application.Run(new Form1());
}
else
{
System.Diagnostics.ProcessStartInfo startinfo = new System.Diagnostics.ProcessStartInfo();
//啟動的應用程序
startinfo.FileName = Application.ExecutablePath;
//設置啟動動作,以管理員身份啟動
startinfo.Verb = "runas";
var process= System.Diagnostics.Process.Start(startinfo);
Application.Exit();
}3:對注冊表進行編輯,設置啟動路徑
RegistryKey runKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true);
//當前啟動的項目
//string app = Application.ExecutablePath;
//獲取的路徑格式為:D:\Program Files (x86)/360/360Safe/safemon/360tray.exe
//該格式無法達到開機啟動的目的。
string app = System.Reflection.Assembly.GetExecutingAssembly().Location;
//格式:D:\Program Files (x86)\360\360Safe\safemon\360tray.exe
//該格式實現(xiàn)開機啟動
Registry.LocalMachine.CreateSubKey(@"SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN").SetValue("MyAngel", app, RegistryValueKind.String); //打開注冊表中的現(xiàn)有項并設置其中的鍵值類型4:注銷開機自啟動功能(可選):
//刪除該啟動項
RegistryKey runKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", RegistryKeyPermissionCheck.ReadWriteSubTree);
runKey.DeleteValue("MyAngel");
runKey.Close();5:特別注意事項:
1,雖然使用:
Registry.LocalMachine.CreateSubKey(@"SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN").SetValue("MyAngel", app, RegistryValueKind.String);理論上添加的鍵值信息應該是存儲在:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
實際上有可能存儲在:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
2,設置的值其格式必須注意:
SetValue("MyAngel", app, RegistryValueKind.String);app存儲的字符串格式只能是:D:\Program Files (x86)\360\360Safe\safemon\360tray.exe
而不能是:D:\Program Files (x86)/360/360Safe/safemon/360tray.exe
如果格式異常則無法達到開機自啟動的目的。
到此這篇關(guān)于C#設置程序開機啟動的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)C# 程序開機啟動內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#使用AForge實現(xiàn)調(diào)用攝像頭的示例詳解
AForge是一個專門為開發(fā)者和研究者基于C#框架設計的,這個框架提供了不同的類庫和關(guān)于類庫的資源,本文為大家介紹了C#使用AForge實現(xiàn)調(diào)用攝像頭的相關(guān)教程,需要的可以了解下2023-11-11
winform c#中子窗體關(guān)閉刷新父窗體的實例
下面小編就為大家?guī)硪黄獁inform c#中子窗體關(guān)閉刷新父窗體的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
C#使用ICSharpCode.SharpZipLib.dll進行文件的壓縮與解壓功能
這篇文章主要介紹了C#使用ICSharpCode.SharpZipLib.dll進行文件的壓縮與解壓功能,需要的朋友可以參考下2017-12-12
C# WinForm中Panel實現(xiàn)用鼠標操作滾動條的實例方法
由于在WinForm中Panel不能直接響應鼠標的滾動事件,只好采用捕獲窗體的滾動事件。2013-03-03
Unity輸出帶點擊跳轉(zhuǎn)功能的Log實現(xiàn)技巧詳解
這篇文章主要為大家介紹了Unity輸出帶點擊跳轉(zhuǎn)功能的Log實現(xiàn)技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11

