【问题标题】:How to create custom action to change file permission如何创建自定义操作以更改文件权限
【发布时间】:2016-04-20 23:19:02
【问题描述】:

我正在开发一个基于 Windows 的 c++ 应用程序。我已经使用 Visual Studio 2012 为这个项目创建了安装程序。这个项目还有一些配置文件,它们被复制到安装文件夹(c:\program files\)中。应用程序启动时,还会在此安装目录中创建一个日志文件。 现在的问题是,当我在具有管理员权限的 Windows 7 系统上安装应用程序时,一切正常。但是,当我在没有管理员权限的系统上安装它时,我的应用程序既无法读取当前目录中存在的配置文件,也无法生成日志文件。

如何在安装过程中设置/更改此安装目录的权限,以便修改/读取配置文件并创建日志文件。

【问题讨论】:

标签: c++ visual-studio-2012 mfc custom-action installshield-2012


【解决方案1】:

您需要决定是否希望您的应用程序具有管理员权限,因为只有具有管理员权限的应用程序才能修改/读取配置文件并在“程序文件”的子目录中创建日志文件。

如果您对此感到满意,则创建一个应用程序,该应用程序将在启动时打开 UAC 提示,该提示请求管理员权限。为此,请打开项目属性页并转到“链接器->清单文件”,然后将“UAC 执行级别”的值设置为requireAdministrator。另一方面,如果您认为这太过分了,我建议您更改您的应用程序以在用户文件夹中创建一个目录。该文件夹将用于存储配置文件和日志文件。最常见的做法是在C:\Users\some_user\AppData\Local中创建一个文件夹。

请注意,我建议使用后一种方法,无需授予应用程序管理员权限即可将配置和日志文件保存在“程序文件”中。但是,我对您的应用程序不够熟悉,也许 UAC 提示是一个更好的解决方案。这由您决定。

【讨论】:

  • 您能建议我如何在应用程序启动时提示 UAC 吗?
  • @SGP 您是否设法使用此答案中的信息解决了您的问题?如果您这样做了,请考虑对其进行投票和/或将其标记为已接受。
猜你喜欢
  • 1970-01-01
  • 2013-10-30
  • 2012-01-29
  • 2019-01-24
  • 2021-01-17
  • 1970-01-01
  • 1970-01-01
  • 2019-10-09
  • 1970-01-01
相关资源
最近更新 更多