4

我知道如何使用类似的东西更改主 ISE 窗口的标题

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

但我想知道如何访问在读取主机请求时弹出的窗口标题,例如:

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

它作为标题弹出Windows PowerShell ISE - Input- 是的,我知道我Please enter Perforce Password窗口中有提示- 但我真的希望能够自定义标题 - 有什么想法吗?

4

2 回答 2

7

您可以使用 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 获得的类似 UI,但您可以指定所需的响应。这适用于任何 PowerShell 主机、ISE 或 PowerShell.exe。

于 2011-05-06T14:25:02.353 回答
2

这是一个个人答案,但对我来说,ISE 是一个用于编辑和调试脚本的 WorkFrame。我更喜欢PowerGUI

它不是执行 scipts 的最终 PowerShell 解释器。因此,如果您想在代码中添加 UI,您可以查看如何在脚本中集成 Windows 窗体或 WPF。它还存在一些模块来帮助您。

这是关于 WPF 的 Microsoft 系列

WPF 和 PowerShell – 第 1 部分(Hello World 和欢迎来到 WPF 周)

WPF 和 PowerShell – 第 2 部分(使用脚本探索 WPF(和 .NET 的其余部分))

WPF 和 PowerShell——第 3 部分(处理事件)

看看 WPK(WPF PowerShell 工具包

于 2011-05-06T03:41:21.600 回答