有问题的应用程序是.Net 2.0 Framework WinForms。它应该在大型用户基础上工作(从CD安装)。使用InnoSetup完成安装。Vista&C# - 拖放问题(与海拔无关)
在两台机器上,应用程序不接受拖动&拖放(应用程序和源D & D具有相同的高程级别)。
通过添加读取&阅读&对应用程序快捷方式执行INTERACTIVE SID的权限,此问题似乎已解决。
问:如何添加这些权限和D & D是相关的以及如何在安装过程中检查/设置这些权限?
有问题的应用程序是.Net 2.0 Framework WinForms。它应该在大型用户基础上工作(从CD安装)。使用InnoSetup完成安装。Vista&C# - 拖放问题(与海拔无关)
在两台机器上,应用程序不接受拖动&拖放(应用程序和源D & D具有相同的高程级别)。
通过添加读取&阅读&对应用程序快捷方式执行INTERACTIVE SID的权限,此问题似乎已解决。
问:如何添加这些权限和D & D是相关的以及如何在安装过程中检查/设置这些权限?
只是在黑暗中拍摄,但是应用程序的Main()方法中存在[STAThread]属性?没有它,拖放将不起作用。 (虽然这不能解释随着INTERACTIVE SID权利变化的行为变化)。
您应该直接在Visual Studio环境之外运行项目的exe文件。我正在开发Windows Vista平台。
您这里有两个问题:
- 如何以及将这些权利和d & d有关...
这个我完全不能确定。我们在我们的WinForm应用程序中使用D & D到/从外壳和Outlook在Vista中没有任何问题。我甚至不确定你建议的ACL更改是否可以解决你遇到的任何问题。
- 如何在安装过程中检查/设置这些权限?
最简单的方式做,这是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);
}
此外,这也被连接到安装程序,其中 - 如果是安装OUT程序文件的( “可信赖的地点”),它会表现不好。 – 2009-03-03 07:16:55
好问题,不知道答案。 – 2009-10-08 01:24:51