PowerShell 메모 InputBox
7439 단어 GUI대화InputBoxXamlPowerShell
개요
GUI의 InputBox(인풋 박스)를 표시하는 샘플.
실행 예
코드
Add-Type -AssemblyName PresentationFramework
[xml]$xaml = @'
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="150" Width="600"
ResizeMode="CanResizeWithGrip" Title="InputBox">
<Window.Resources>
<Style TargetType="Button">
<Setter Property="Width" Value="150" />
<Setter Property="Margin" Value="10,5" />
</Style>
</Window.Resources>
<StackPanel FocusManager.FocusedElement="{Binding ElementName=inputText}">
<TextBlock Text="入力してください。" Margin="10,10,10,5" />
<TextBox Name="inputText" Text="" Margin="10,0,10,10" />
<StackPanel Orientation="Horizontal">
<Button Name="okButton" Content="OK" IsDefault="True" />
<Button Name="cancelButton" Content="Cancel" IsCancel="True" />
</StackPanel>
</StackPanel>
</Window>
'@
$reader = (New-Object System.Xml.XmlNodeReader $xaml)
$window = [Windows.Markup.XamlReader]::Load($reader)
$txt1 = $window.FindName("inputText")
$okBtn = $window.FindName("okButton")
$cancelBtn = $window.FindName("cancelButton")
# 入力内容保存用
[string]$Script:InText = ""
# OKボタン押下時の処理
$okBtn_clicked = $okBtn.add_Click
$okBtn_clicked.Invoke({
Write-Host "OK押された" -ForegroundColor Green
$Script:InText = $txt1.Text
$window.Close()
})
# Cancelボタン押下時の処理
$cancelBtn_clicked = $cancelBtn.add_Click
$cancelBtn_clicked.Invoke({
Write-Host "Cancel押された" -ForegroundColor Green
$window.Close()
})
# InputBox表示
$window.ShowDialog() > $null
# 入力結果表示
if ($Script:InText) {
Write-Output ("入力された内容は、" + $Script:InText + "です。")
} else {
Write-Output "何も入力されなかったかキャンセルされました。"
}
동작 확인한 환경
코드
Add-Type -AssemblyName PresentationFramework
[xml]$xaml = @'
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="150" Width="600"
ResizeMode="CanResizeWithGrip" Title="InputBox">
<Window.Resources>
<Style TargetType="Button">
<Setter Property="Width" Value="150" />
<Setter Property="Margin" Value="10,5" />
</Style>
</Window.Resources>
<StackPanel FocusManager.FocusedElement="{Binding ElementName=inputText}">
<TextBlock Text="入力してください。" Margin="10,10,10,5" />
<TextBox Name="inputText" Text="" Margin="10,0,10,10" />
<StackPanel Orientation="Horizontal">
<Button Name="okButton" Content="OK" IsDefault="True" />
<Button Name="cancelButton" Content="Cancel" IsCancel="True" />
</StackPanel>
</StackPanel>
</Window>
'@
$reader = (New-Object System.Xml.XmlNodeReader $xaml)
$window = [Windows.Markup.XamlReader]::Load($reader)
$txt1 = $window.FindName("inputText")
$okBtn = $window.FindName("okButton")
$cancelBtn = $window.FindName("cancelButton")
# 入力内容保存用
[string]$Script:InText = ""
# OKボタン押下時の処理
$okBtn_clicked = $okBtn.add_Click
$okBtn_clicked.Invoke({
Write-Host "OK押された" -ForegroundColor Green
$Script:InText = $txt1.Text
$window.Close()
})
# Cancelボタン押下時の処理
$cancelBtn_clicked = $cancelBtn.add_Click
$cancelBtn_clicked.Invoke({
Write-Host "Cancel押された" -ForegroundColor Green
$window.Close()
})
# InputBox表示
$window.ShowDialog() > $null
# 入力結果表示
if ($Script:InText) {
Write-Output ("入力された内容は、" + $Script:InText + "です。")
} else {
Write-Output "何も入力されなかったかキャンセルされました。"
}
동작 확인한 환경
Add-Type -AssemblyName PresentationFramework
[xml]$xaml = @'
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="150" Width="600"
ResizeMode="CanResizeWithGrip" Title="InputBox">
<Window.Resources>
<Style TargetType="Button">
<Setter Property="Width" Value="150" />
<Setter Property="Margin" Value="10,5" />
</Style>
</Window.Resources>
<StackPanel FocusManager.FocusedElement="{Binding ElementName=inputText}">
<TextBlock Text="入力してください。" Margin="10,10,10,5" />
<TextBox Name="inputText" Text="" Margin="10,0,10,10" />
<StackPanel Orientation="Horizontal">
<Button Name="okButton" Content="OK" IsDefault="True" />
<Button Name="cancelButton" Content="Cancel" IsCancel="True" />
</StackPanel>
</StackPanel>
</Window>
'@
$reader = (New-Object System.Xml.XmlNodeReader $xaml)
$window = [Windows.Markup.XamlReader]::Load($reader)
$txt1 = $window.FindName("inputText")
$okBtn = $window.FindName("okButton")
$cancelBtn = $window.FindName("cancelButton")
# 入力内容保存用
[string]$Script:InText = ""
# OKボタン押下時の処理
$okBtn_clicked = $okBtn.add_Click
$okBtn_clicked.Invoke({
Write-Host "OK押された" -ForegroundColor Green
$Script:InText = $txt1.Text
$window.Close()
})
# Cancelボタン押下時の処理
$cancelBtn_clicked = $cancelBtn.add_Click
$cancelBtn_clicked.Invoke({
Write-Host "Cancel押された" -ForegroundColor Green
$window.Close()
})
# InputBox表示
$window.ShowDialog() > $null
# 入力結果表示
if ($Script:InText) {
Write-Output ("入力された内容は、" + $Script:InText + "です。")
} else {
Write-Output "何も入力されなかったかキャンセルされました。"
}
Reference
이 문제에 관하여(PowerShell 메모 InputBox), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Kosen-amai/items/5ed6e9255c033896648a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)