C#设置程序开机启动的实现示例
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权限对注册表进行编辑操作程序将报异常)
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 //该格式实现开机启动 Registry.LocalMachine.CreateSubKey(@"SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN").SetValue("MyAngel", app, RegistryValueKind.String); //打开注册表中的现有项并设置其中的键值类型
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
如果格式异常则无法达到开机自启动的目的。
到此这篇关于C#设置程序开机启动的实现示例的文章就介绍到这了,更多相关C# 程序开机启动内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
C#中通过使用Connection类来实现打开/关闭数据库的代码实例
今天小编就为大家分享一篇关于C#中通过使用Connection类来实现打开/关闭数据库的代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2018-10-10C#使用DataSet Datatable更新数据库的三种实现方法
这篇文章主要介绍了C#使用DataSet Datatable更新数据库的三种实现方法,需要的朋友可以参考下2014-08-08
最新评论