包含用于关闭应用程序的 Yes/No 消息框的脚本无法正常工作
Script which contains a Yes/No message box to close an application is not working
我正在尝试编写一个脚本来显示带有 yes/no 按钮的消息框。我希望“是”关闭打开的应用程序,“否”结束脚本。
我已经对下面的代码进行了一些修改,但我能得到的最好的结果是是和否都关闭了应用程序。这是我的代码:
Add-Type -AssemblyName PresentationCore,PresentationFramework
[System.Windows.MessageBox]::Show('Do you want to close TAS?',‘WARNING’,‘YesNo’)
[System.Windows.MessageBoxImage]::Warning
$msgBoxInput = [System.Windows.MessageBoxButton]::Show(‘YesNo’)
switch ($msgBoxInput) {
‘Yes’ {
Stop-Process -Name ATIS-Broadcaster2
‘YES’
}
‘No’ {
Exit-PSSession
‘NO’
}
}
尝试以下操作:
Add-Type -AssemblyName PresentationCore, PresentationFramework
switch (
[System.Windows.MessageBox]::Show(
'Do you want to close TAS?',
'WARNING',
'YesNo',
'Warning'
)
) {
'Yes' {
'YES'
# Stop-Process -Name ATIS-Broadcaster2
}
'No' {
'NO'
# Exit-PSSession
}
}
注意:我还将您的“卷曲”单引号转换为常规的 ASCII 范围单引号;虽然 PowerShell 接受这两种类型,但最好坚持使用后者。
请参阅 System.Windows.MessageBox
文档。
注意传给'YesNo'
和'Warning'
的参数,还有.Show()
方法的return值,expect /return枚举值[1].
但是,PowerShell 的自动类型转换方便地允许仅将值名称指定为 字符串 ,例如 'YesNo'
、'Warning'
或 'Yes'
代替 [System.Windows.MessageBoxButton]::YesNo
、[System.Windows.MessageBoxImage]::Warning
和 [System.Windows.MessageBoxResult]::Yes
,这简化了代码。
[1] 即派生自 System.Enum
的值类型的实例,它们在符号名称下定义离散数值。
我正在尝试编写一个脚本来显示带有 yes/no 按钮的消息框。我希望“是”关闭打开的应用程序,“否”结束脚本。
我已经对下面的代码进行了一些修改,但我能得到的最好的结果是是和否都关闭了应用程序。这是我的代码:
Add-Type -AssemblyName PresentationCore,PresentationFramework
[System.Windows.MessageBox]::Show('Do you want to close TAS?',‘WARNING’,‘YesNo’)
[System.Windows.MessageBoxImage]::Warning
$msgBoxInput = [System.Windows.MessageBoxButton]::Show(‘YesNo’)
switch ($msgBoxInput) {
‘Yes’ {
Stop-Process -Name ATIS-Broadcaster2
‘YES’
}
‘No’ {
Exit-PSSession
‘NO’
}
}
尝试以下操作:
Add-Type -AssemblyName PresentationCore, PresentationFramework
switch (
[System.Windows.MessageBox]::Show(
'Do you want to close TAS?',
'WARNING',
'YesNo',
'Warning'
)
) {
'Yes' {
'YES'
# Stop-Process -Name ATIS-Broadcaster2
}
'No' {
'NO'
# Exit-PSSession
}
}
注意:我还将您的“卷曲”单引号转换为常规的 ASCII 范围单引号;虽然 PowerShell 接受这两种类型,但最好坚持使用后者。
请参阅 System.Windows.MessageBox
文档。
注意传给'YesNo'
和'Warning'
的参数,还有.Show()
方法的return值,expect /return枚举值[1].
但是,PowerShell 的自动类型转换方便地允许仅将值名称指定为 字符串 ,例如 'YesNo'
、'Warning'
或 'Yes'
代替 [System.Windows.MessageBoxButton]::YesNo
、[System.Windows.MessageBoxImage]::Warning
和 [System.Windows.MessageBoxResult]::Yes
,这简化了代码。
[1] 即派生自 System.Enum
的值类型的实例,它们在符号名称下定义离散数值。