メモ
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 -Width 80 | 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 -Width 80 | Write-Host }) $form.ShowDialog()