2017-01-30 10 views
0

Нет ничего, чтобы предположить, что простой инструмент Windows Forms DragDrop не будет работать в PowerShell и несколько ресурсов, объясняющих, что он действительно работает, однако я не могу заставить их работать. Даже как-то просто, как это:PowerShell Forms не запускает DragDrop

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

У меня возникло внезапное осознание и я смог подтвердить, что это на самом деле контроль учетных записей пользователей.

Поскольку я нахожусь в Windows 10, у меня есть моя PowerShell, работающая как администратор, поэтому я могу на самом деле делать то, что мне нужно, однако объект из процесса проводника на уровне пользователя (или что-то еще работает как пользователь) будет просто откажитесь от взаимодействия с формой PowerShell на уровне администратора.

Запуск PowerShell в качестве пользователя позволяет DragDrop работать так, как ожидалось, но удачи, если вам нужно, чтобы он был администратором! > _>