2015-07-20 100 views
0

我使用opendialog加載文件到應用程序路徑。有沒有辦法將文件加載到%USERPROFILE%> AppData的>本地> VirtualStore>程序> MyApplication的文件夾,這是因爲用戶不應該看到加載文件虛擬商店爲delphi應用程序

+0

或任何其他技巧來隱藏應用程序路徑中最終用戶的opendialog文件 – stiphen

回答

1

Windows會自動顯示應用程序的「VirtualStore 「舊應用程序的文件。這樣做是爲了確保在UAC繼續正常運行之前構建舊的應用程序。要關閉此行爲,您需要嚮應用程序添加應用程序清單。這將使Windows關閉文件和註冊表項的VirtualStore行爲。

這裏是一個很好頁面描述了詳細情況發生:
http://www.codeproject.com/Articles/17968/Making-Your-Application-UAC-Aware

清單是可以嵌入到應用程序中的XML資源文件。就UAC而言,這有兩個目的。首先,它告訴操作系統該應用程序設計時考慮到了UAC,因此它不應該試圖虛擬化任何文件夾或註冊表設置。如果應用程序在聲明後仍嘗試訪問受保護的資源,那麼這些請求只會失敗而不是虛擬化。它所做的另一件事是允許應用程序聲明它需要運行的特權級別以及它是否需要提升。

StackOverflow已經有幾個問題處理創建和添加應用程序清單到Delphi 7項目。這裏是一個鏈接,讓你開始:
Delphi 7 vista/windows 7 manifest

一旦你告訴你已經知道有關Windows的通過體現了新版本的Windows,你需要確保你是新的規則玩,不將數據寫回任何受保護的位置。