/
githubmirror
/
PowerToys
Обзор
Документация
Войти
/
githubmirror
/
PowerToys
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Commands/RunAsAdminCommand.cs
59 строк
2 KB
Michael Jolley
Standardizing built-in extension icon handling (#40606)
15 июл 2025, 22:33
Не верифицирован
15 июл 2025, 22:33
b552f2a
Код
Авторство
О чём код?
// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using System.Diagnostics; using System.Threading.Tasks; using Microsoft.CmdPal.Ext.Apps.Properties; using Microsoft.CmdPal.Ext.Apps.Utils; using Microsoft.CommandPalette.Extensions.Toolkit; namespace Microsoft.CmdPal.Ext.Apps.Commands; internal sealed partial class RunAsAdminCommand : InvokableCommand { private readonly string _target; private readonly string _parentDir; private readonly bool _packaged; public RunAsAdminCommand(string target, string parentDir, bool packaged) { Name = Resources.run_as_administrator; Icon = Icons.RunAsAdminIcon; _target = target; _parentDir = parentDir; _packaged = packaged; } internal static async Task RunAsAdmin(string target, string parentDir, bool packaged) { await Task.Run(() => { if (packaged) { var command = "shell:AppsFolder\\" + target; command = Environment.ExpandEnvironmentVariables(command.Trim()); var info = ShellCommand.SetProcessStartInfo(command, verb: "runas"); info.UseShellExecute = true; info.Arguments = string.Empty; Process.Start(info); } else { var info = ShellCommand.GetProcessStartInfo(target, parentDir, string.Empty, ShellCommand.RunAsType.Administrator); Process.Start(info); } }); } public override CommandResult Invoke() { _ = RunAsAdmin(_target, _parentDir, _packaged).ConfigureAwait(false); return CommandResult.Dismiss(); } }