Как я могу изменить WindowTitle приглашения Read-Host в PowerShell ISE?

Я знаю, как изменить заголовок главного окна ISE, используя что-то вроде

$Host.UI.RawUI.WindowTitle = "My Awesome New Window Title"

но мне интересно, как получить доступ к заголовку окна, которое появляется при запросе Read-Host, например:

$strP4Pass = Read-Host "Please enter Perforce Password" -assecurestring

Это всплывает с Windows PowerShell ISE - Input как название - и да, я знаю, у меня есть Please enter Perforce Password подсказку в окне - но я бы очень хотел иметь возможность настроить заголовок - есть идеи?

2 ответа

Решение

Вы можете создать настраиваемое приглашение с несколькими вариантами, используя System.Management.Automation.Host.ChoiceDescription

$Yes = New-Object System.Management.Automation.Host.ChoiceDescription "Yes Please"
$No = New-Object System.Management.Automation.Host.ChoiceDescription "No, Thank you"
$YesNoChoices = [System.Management.Automation.Host.ChoiceDescription[]]($No,$Yes)
$Answer = $Host.UI.PromptForChoice("Caption goes here", "Message Goes here", $YesNoChoices, 1)

Это создаст аналогичный пользовательский интерфейс, который вы получите с -confirm или -whatif, но вы можете указать ответы, которые вы хотите. Это будет работать на любом хосте PowerShell, ISE или PowerShell.exe.

Это личный ответ, но для меня ISE - это WorkFrame для редактирования и отладки ваших скриптов. Я предпочитаю PowerGUI для этого.

Это НЕ последний интерпретатор PowerShell для выполнения ваших скриптов. Поэтому, если вы хотите добавить пользовательский интерфейс в свой код, вы можете посмотреть, как интегрировать Windows Forms или WPF в ваши скрипты. Также существуют некоторые модули, которые помогут вам в этом.

Вот серия Microsoft о WPF

WPF & PowerShell - Часть 1 (Привет, мир и добро пожаловать на неделю WPF)

WPF & PowerShell - часть 2 (изучение WPF (и остальной части.NET) с помощью сценариев)

WPF & PowerShell - часть 3 (обработка событий)

Взгляните на WPK ( WPF PowerShell Toolkit)

Другие вопросы по тегам