在管理员帐户中运行visual studio时,无法触发拖放事件

时间:2013-07-02 03:04:00

标签: c# winforms drag-and-drop administrator

我使用Visual Studio 2008,.net framework 3.5

我有一个webservice应用程序(一个使用webservice的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);
        }

    }

当我在普通帐户中运行时,它可以正常工作,但在管理员中却没有。怎么解决?

1 个答案:

答案 0 :(得分:3)

这里也提出了这个问题: Drag and drop not working in 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

P.S。引用重复的注释也是正确的。