【发布时间】:2014-02-28 12:30:01
【问题描述】:
我已经为我的软件做了一个安装程序(使用 Inno Setup),最终安装在
C:\Program Files (x86)\MyApp\myapp.exe
像往常一样在 Windows 平台上运行,并且完美运行。
当我的软件尝试在此处写入其配置文件时出现问题:
C:\Program Files (x86)\MyApp\myapp.cfg
这里出现Permission denied 错误!
我找到的唯一解决方案是“以管理员身份运行软件”,但我不喜欢这个解决方案:我不想要求最终用户每次都必须“以管理员身份运行”他们将使用该软件。
是否有一个干净的解决方案可以在不要求最终用户“以管理员身份运行”的情况下在C:\Program Files (x86)\MyApp\myapp.cfg 中写入?
【问题讨论】:
-
是的。有一个解决方案。永远不要将配置文件保存到应用程序文件夹!将其存储在应用程序数据文件夹中应有的位置。该应用程序将可写入您的应用程序。
-
感谢@TLama 的回答。您是否知道文档/教程/文档显示所有此类事情的良好做法是什么?也许有一些官方的微软文档?此外,我正在寻找适用于 WinXP、WinVista、Win7、Win8 的解决方案:它们都有“应用程序数据文件夹”吗?最后一个问题:你知道如何在 Python(或任何其他语言)中获取“应用程序数据文件夹”路径吗?
-
我已从您的最后两个问题中删除了 Inno Setup 标签,因为它们与安装程序本身无关。
-
谢谢@TLama,你是对的。你对下面的评论有什么想法吗? stackoverflow.com/questions/22095286/… ?
标签: windows winapi uac privileges