#author("2025-02-18T23:40:21+09:00","","") [[SoftwareEngineering]] #author("2025-02-18T23:41:27+09:00","","") [[ソフトウェア開発>SoftwareEngineering]] / [[PowerShell>./]] *PowerShell [#ub9f1fb3] #contents *GUI [#y4468667] **Drag & Drop [#q83d1c52] # ------------------------------------------------------------------------------ # ドラッグ&ドロップのサンプル # ------------------------------------------------------------------------------ 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()