ソフトウェア開発 / PowerShell
PowerShell†
GUI†
Drag & Drop†
# ------------------------------------------------------------------------------
# ドラッグ&ドロップのサンプル
# ------------------------------------------------------------------------------
Add-Type -AssemblyName System.Drawing
Add-Type -AssemblyName System.Windows.Forms
# ----------------------------------------------------------
# メイン画面
# ----------------------------------------------------------
$form = New-Object System.Windows.Forms.Form
$form.Text = "Drag & Drop"
$form.Size = New-Object System.Drawing.Size(640, 480)
$form.AllowDrop = $true
function IsTargetFile($filename) {
if ([IO.Path]::GetExtension($filename) -eq ".txt") {
return $true
} else {
return $false
}
}
$form.Add_DragDrop({
foreach ($filename in $_.Data.GetData([Windows.Forms.DataFormats]::FileDrop)) {
if (IsTargetFile($filename)) {
Write-Host $filename
}
}
})
$form.Add_DragOver({
foreach ($filename in $_.Data.GetData([Windows.Forms.DataFormats]::FileDrop)) {
if (IsTargetFile($filename)) {
$_.Effect = [Windows.Forms.DragDropEffects]::All
}
}
})
# ----------------------------------------------------------
# 実行ボタン
# ----------------------------------------------------------
$executeButton = New-Object System.Windows.Forms.Button
$form.Controls.Add($executeButton)
$executeButton.Location = New-Object System.Drawing.Point(520, 390)
$executeButton.Size = New-Object System.Drawing.Size(80, 30)
$executeButton.Text = "実行"
$executeButton.Add_Click({
Write-Host "実行ボタンクリック"
})
# ----------------------------------------------------------
# 画面表示
# ----------------------------------------------------------
$form.ShowDialog()