VirtualStore for delphi应用程序

时间:2015-07-20 17:08:18

标签: delphi delphi-7

我使用opendialog将文件加载到应用程序路径。有没有办法将文件加载到%userprofile%> AppData>本地> VirtualStore>程序文件> MyApplication Folder ,这是因为用户不应该看到加载的文件

1 个答案:

答案 0 :(得分: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,您需要确保按照新规则进行播放,并且不要将数据写回任何受保护的位置。