首页 > 编程知识 正文

程序用管理员权限自启动,自动运行权限怎么开启

时间:2023-05-06 09:56:26 阅读:261675 作者:3157

开启自启动的两种方式

1:修改注册表

RegistryKey run = Registry.CurrentUser.CreateSubKey(@"SoftwareMicrosoftWindowsCurrentVersionRun");//当前用户

RegistryKey run = Registry.LocalMachine.CreateSubKey(@"SoftwareMicrosoftWindowsCurrentVersionRun");//当前设备的所有用户

run.SetValue(key, value); //value是指定开启文件的路径

2:通过在C:UserswangbiaoAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup创建lnk方式

 string StartupPath = System.Environment.GetFolderPath(Environment.SpecialFolder.Startup);
 string ink = StartupPath + "\xxxx.lnk"; //快捷方式的名称

 string exepath =exename;  //程序完成路径名称

  if (!File.Exists(ink))
  {
                            IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShell();
                            IWshRuntimeLibrary.IWshShortcut shortcut = (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(ink);//创建快捷方式对象
                            shortcut.TargetPath = exepath;//指定目标路径
                            shortcut.WorkingDirectory = Path.GetDirectoryName(exepath);//设置起始位置
                            shortcut.WindowStyle = 1;//设置运行方式,默认为常规窗口
                            shortcut.Description = "Auto run CJ Smart Wifi";//设置备注
                            //shortcut.IconLocation = string.IsNullOrWhiteSpace(iconLocation) ? targetPath : iconLocation;//设置图标路径
                            shortcut.Save();//保存快捷方式
     }

 

**没有管理员权限的程序通过这两种方式都可以正常启动,有管理员权限的则不行

 

让有管理员权限的程序开机自启动

方法:让一个没有管理员的程序设置自启动,开启自启动后,呼叫管理 员权限的程序

           System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
            startInfo.UseShellExecute = true;
            startInfo.WorkingDirectory = Environment.CurrentDirectory;
            startInfo.FileName =ExeName";       //ExeName有管理员权限的程序完整路径
            //设置启动动作,确保以管理员身份运行
            startInfo.Verb = "runas";
            try
            {
                System.Diagnostics.Process.Start(startInfo);
                Environment.Exit(0);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

 

 

 

 

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。