メモ
add_DragEnter
メソッドとadd_DragDrop
メソッドの定義をGet-Member
コマンドレットで確認
# PowerShell 5.1, Windows 11 (2023年10月頃)Add-Type -AssemblyName System.Windows.Forms [Windows.Forms.Form]::new() |Get-Member -Force|Where-Object -Property Name -Match'^add_'
$_
をGet-Member
コマンドレットで確認
# PowerShell 5.1, Windows 11 (2023年10月頃)Add-Type -AssemblyName System.Windows.Forms $form=[Windows.Forms.Form]::new() $form.Text ="クリック"$numClicked=0$form.add_Click({ # Unary array expression (, singleObject) (,$_) |Get-Member -Force|Out-String -Width80|Write-Verbose -Verbose# $numClicked++$p=[ref]$numClicked$p.Value++Write-Verbose$numClicked -Verbose }) $form.ShowDialog()
使い捨てスクリプト
# PowerShell 5.1, Windows 11 (2023年10月頃)$ErrorActionPreference="Stop"$VerbosePreference="Continue"Set-StrictMode -Version Latest Add-Type -AssemblyName System.Windows.Forms $form=[Windows.Forms.Form]::new() $form.AllowDrop =$true$form.add_DragEnter({ param([Object]$sender,[Windows.Forms.DragEventArgs]$e) Write-Verbose"DragEnter"$e.Effect =[Windows.Forms.DragDropEffects]::Copy }) $form.add_DragDrop({ param([Object]$sender,[Windows.Forms.DragEventArgs]$e) Write-Verbose"DragDrop"Get-FileHash -LiteralPath$e.Data.GetFileDropList() |Format-List -Property Algorithm, Hash, @{Name="Name"; Expression={[IO.Path]::GetFileName($_.Path)}} |Out-String -Width80|Write-Host }) $form.ShowDialog()