在管理员帐户中运行visual studio时,无法触发拖放事件
本文关键字:事件 拖放 studio 管理员 visual 运行 | 更新日期: 2023-09-27 18:20:34
我使用Visual Studio 2008,.net framework 3.5
我有一个Web服务应用程序(一个使用Web服务的winform客户端),我必须在管理员帐户中运行它
我需要将文件从windows资源管理器拖放到这个应用程序的窗体中。
这是我的代码:
this.AllowDrop = true;
private void Form1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop, false))
e.Effect = DragDropEffects.All;
}
private void Form1_DragDrop(object sender, DragEventArgs e)
{
string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[];
foreach (string s in fileList)
{
MessageBox.Show(s);
}
}
当我在普通帐户中运行时,它是有效的,但在管理员中它不起作用。如何解决?
这里也提出了这个问题:拖放在C中不起作用#答案是"从Windows Vista开始,由于用户界面权限隔离,您无法从运行在较低完整性级别的应用程序拖放到运行在较高级别的应用软件。"
请参阅http://blogs.msdn.com/b/patricka/archive/2010/01/28/q-why-doesn-t-drag-and-drop-work-when-my-application-is-running-elevated-a-mandatory-integrity-control-and-uipi.aspx详细信息
附言:引用重复的评论也是正确的。