有問題的應用程序是.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