2

我使用 Visual Studio 2008、.net 框架 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);
        }

    }

当我在普通帐户中运行时它可以工作,但在管理员中它没有。如何解决?

4

1 回答 1

5

此处也提出了这个问题: 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了解详细信息

PS 引用重复的评论也是正确的。

于 2014-05-13T11:02:41.453 回答