2015-07-20 54 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,你需要确保你是新的规则玩,不将数据写回任何受保护的位置。