没有任何迹象表明简单的Windows窗体DragDrop在PowerShell中不起作用,并且有几个资源解释它确实有效,但我无法让它们中的任何一个工作。甚至像这样简单:
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()
$form = New-Object System.Windows.Forms.Form
$TBcode = New-Object System.Windows.Forms.TextBox
$form.Controls.Add($TBcode)
$TBcode.Dock = "Fill"
$TBcode.Multiline = $true
$TBCode.ScrollBars = "Vertical"
$TBCode.AllowDrop = $true
$TBcode.Add_DragEnter({ Write-Host "DragEnter"; $_.Effects = "Copy" })
$TBcode.Add_DragDrop({ Write-Host "DragDrop" })
$TBcode.Add_MouseEnter({ Write-Host "Mouse Enter" })
$form.ShowDialog()
MouseEnter事件正常触发,但是当尝试将任何内容拖入TextBox时没有任何反应。
答案 0 :(得分:0)
我突然意识到并且能够确认这实际上是用户帐户控制。
因为我在Windows 10上我已经让我的PowerShell以管理员身份运行所以我实际上可以做我需要的事情,但是来自用户级资源管理器进程的对象(或其他任何运行的对象)用户)将拒绝与管理员级PowerShell表单进行交互。
以用户身份运行PowerShell允许DragDrop按预期工作,但如果您需要它作为管理员,祝您好运! > _>