【问题标题】:VirtualStore for delphi applicationDelphi 应用程序的 VirtualStore
【发布时间】:2015-07-20 17:08:18
【问题描述】:

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

【问题讨论】:

  • 或任何其他在应用路径中向最终用户隐藏 opendialog 文件的技巧

标签: delphi delphi-7


【解决方案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,您将需要确保您正在遵守新规则并且不要将数据写回任何受保护的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 2010-11-13
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    相关资源
    最近更新 更多