/
githubmirror
/
Files
Обзор
Документация
Войти
/
githubmirror
/
Files
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Files.App/Actions/Content/Run/RunWithPowershellAction.cs
57 строк
1 KB
yair100
Code Quality: Add Category, ExtendedLabel, AutomationId and AccessKey to actions (#18308)
27 мар 2026, 00:40
Не верифицирован
27 мар 2026, 00:40
6ef1f17
Код
Авторство
О чём код?
// Copyright (c) Files Community // Licensed under the MIT License. using Files.Shared.Helpers; namespace Files.App.Actions { [GeneratedRichCommand] internal sealed partial class RunWithPowershellAction : ObservableObject, IAction { private readonly IContentPageContext context; public string Label => Strings.RunWithPowerShell.GetLocalizedResource(); public string Description => Strings.RunWithPowershellDescription.GetLocalizedResource(); public ActionCategory Category => ActionCategory.Run; public RichGlyph Glyph => new("\uE756"); public bool IsExecutable => context.SelectedItem is not null && context.PageType != ContentPageTypes.RecycleBin && FileExtensionHelpers.IsPowerShellFile(context.SelectedItem.FileExtension); public RunWithPowershellAction() { context = Ioc.Default.GetRequiredService<IContentPageContext>(); context.PropertyChanged += Context_PropertyChanged; } public Task ExecuteAsync(object? parameter = null) { return Win32Helper.RunPowershellCommandAsync( $"& '{context.ShellPage?.SlimContentPage?.SelectedItem?.ItemPath}'", PowerShellExecutionOptions.None, context.Folder?.ItemPath ); } private void Context_PropertyChanged(object? sender, PropertyChangedEventArgs e) { switch (e.PropertyName) { case nameof(IContentPageContext.SelectedItems): case nameof(IContentPageContext.Folder): OnPropertyChanged(nameof(IsExecutable)); break; } } } }