zoukankan      html  css  js  c++  java
  • 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(@"SoftwareWOW6432NodeMicrosoftWindowsCurrentVersionRun");
                    rk2.SetValue("App", @"""" + path + @"""");
                    rk2.Close();
                }
                else
                {
                    Microsoft.Win32.RegistryKey rk2 = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(@"SoftwareWOW6432NodeMicrosoftWindowsCurrentVersionRun");
                    rk2.DeleteValue("App", false);
                    rk2.Close();
                }
            }

    以上是最终解决方案,下面列出遇到的一些问题

    1、为什么使用注册表HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionRun。

    答:开机启动常用的方法是添加注册表开机启动项,可用的注册表位置包括

    HKEY_CURRENT_USERSOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionRun

    HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun

    HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionRun

    HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun

    其中带WOW6432Node节点的是表示32位程序的

    其中如果程序需要已管理员权限启动,则需要写入到HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionRun,如果过不需要已管理员权限启动,则写入HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun

    2、其他开机启动方式

    参考博文C# 将程序添加开机启动的三种方式

    参考:C# 将程序添加开机启动的三种方式

    WIN10 以管理员权限设置开机启动的问题

    c#程序以管理员权限运行

  • 相关阅读:
    groovy-搭建环境
    isAssignableFrom
    H5调用摄像头
    php生成唯一id
    剑指Offer刷题日常
    ASCII码对照表
    用redis stream作队列的一些心得
    在 CAP 中使用 AOP ( Castle.DynamicProxy )
    office2019下载
    JVM调优浅谈
  • 原文地址:https://www.cnblogs.com/MarcLiu/p/13885607.html
Copyright © 2011-2022 走看看