Vista& C# - Drag&掉落问题(与海拔无关)

时间:2009-03-02 07:29:57

标签: c# winforms drag-and-drop inno-setup

有问题的应用程序是.Net 2.0 Framework WinForms。它应该适用于大型用户群(从CD安装)。使用InnoSetup完成安装。

在两台机器上,应用程序不接受Drag&丢弃(D& D的应用和来源都具有相同的提升水平)。

添加Read&为应用程序快捷方式读取和执行INTERACTIVE SID的权限,此问题似乎已得到解决。

问题:如何添加这些权利和D& D以及如何在安装过程中检查/设置这些权利?

3 个答案:

答案 0 :(得分:1)

这里有两个问题:

  
      
  1. 如何添加这些权利和D& D是如何相关的......
  2.   

我完全不确定。我们在我们的WinForm应用程序中使用D& D来自shell和Outlook而没有任何问题。我甚至不确定您建议的ACL更改肯定会解决您遇到的任何问题。

  
      
  1. 如何在安装过程中检查/设置这些权限?
  2.   

执行此操作的简便方法是create a .Net install class并添加以下代码:

    public static void ReplacePermissions(string filepath, WellKnownSidType sidType, FileSystemRights allow)
    {
        FileSecurity sec = File.GetAccessControl(filepath);
        SecurityIdentifier sid = new SecurityIdentifier(sidType, null);
        sec.PurgeAccessRules(sid); //remove existing
        sec.AddAccessRule(new FileSystemAccessRule(sid, allow, AccessControlType.Allow));
        File.SetAccessControl(filepath, sec);
    }

答案 1 :(得分:0)

只是在黑暗中拍摄,但是应用程序的Main()方法中是否存在[STAThread]属性?没有它,拖放根本不起作用。 (虽然这无法解释INTERACTIVE SID权利变更的行为变化)。

答案 2 :(得分:0)

您应该直接在Visual Studio环境之外运行项目的exe文件。我正在使用Windows Vista平台。