如何以管理员身份启动应用程序?

How to launch app at start as administrator?

我的问题很简单。我无法同时找到这两个问题的解决方案。我的问题是在没有警告的情况下以管理员权限在启动时启动我的程序。我只想获得设置的管理员权限。我正在使用 regedit 在启动时启动我的程序,它在没有管理员权限的情况下工作。如果我尝试在应用程序清单上授予管理员权限,程序不会在启动时启动。我应该如何解决这个问题?程序还需要一个图形用户界面,所以我不能使用服务。感谢您的帮助。

有我的启动码

private void SetStartup()
    {
        RegistryKey rk = Registry.CurrentUser.OpenSubKey
            ("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);

        if (chkStartUp.Checked)
        {
            rk.SetValue("_connectorEthernet", Environment.CurrentDirectory + @"\_connectorEthernet");
            WriteToSettingFile("true");
        }
        else
        {
            rk.DeleteValue("_connectorEthernet", false);
            WriteToSettingFile("false");
        }
    }

好的,我想我解决了。首先我做了

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

因为程序在启动时启动。如果你不这样做,这个程序就不会启动。

之后我在解决方案资源管理器 window 中使用了 settings.setting。

这是为了获取设置

chkStartUp.Checked = Properties.Settings.Default.chk;

这是更改和保存设置

Properties.Settings.Default.chk = true;
Properties.Settings.Default.Save();

最后,此代码用于 运行 cmd 作为管理员并获得响应。

        var proc = new Process
        {
            StartInfo = new ProcessStartInfo
            {

                FileName = "netsh.exe",
                Arguments = "lan reconnect",
                UseShellExecute = false,
                RedirectStandardOutput = true,
                CreateNoWindow = true,
                Verb = "runas"
            }
        };
        proc.Start();
        string line = proc.StandardOutput.ReadToEnd();
        MessageBox.Show(line);

这就是我解决问题的方法。我希望它可能对其他人有所帮助。如果您有任何其他想法,请与我联系。