- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我已经为我的软件制作了安装程序(使用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 所说,永远不要尝试写入应用程序文件夹。这从来都不是推荐的做法,因为 Vista Microsoft 已禁用它(首先允许您写入但实际上将写入重定向到另一个目录,该功能在后来的操作系统版本中似乎已被删除 - 这也是一件好事,因为它正在制作支持 hell )。
要检索已知文件夹路径,请使用 SHGetFolderPath
功能。根据应用程序数据是在所有用户之间共享还是仅供运行该应用程序的用户使用,您应该调用 SHGetFolderPath
与 CSIDL_COMMON_APPDATA
或 CSIDL_LOCAL_APPDATA
分别。避免直接在这些文件夹中写入,而是创建子文件夹,如 <your company>\<your app>
并改用它们。
请注意 SHGetFolderPath
已被弃用, SHGetKnownFolderPath
应该代替它使用,但前提是您不需要与 Vista 之前的 Windows 版本兼容。
为了完整起见,this thread还介绍了如何导入 SHGetFolderPath
进入 Python。
更新:更正以避免使用环境变量和 SHGetFolderPath
而不是根据@RemyLebeau @TLama 的评论
关于windows - 在 C :\Program Files (x86)\MyApp\myapp. cfg 中写入配置文件,与管理员权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22095286/
我有一个Java项目,正在使用hibernate。这里的事情是我想将hibernate.cfg.xml文件放在“src”文件夹之外,但是当我配置该文件时,它显示FileNotFoundExceptio
我想了解 #[cfg(test)] 和 #[cfg(feature = "test")] 之间的区别,最好通过示例进行演示。 最佳答案 #[cfg(test)] 标记仅当启用 test 配置选项时才编
如果我启动 cppcheck,我会收到以下错误: cppcheckListLib.c(信息)无法加载 std.cfg。您的 Cppcheck 安装已损坏,请重新安装。 Cppcheck 二进制文件是在
我想了解 #[cfg(test)] 和 #[cfg(feature = "test")] 之间的区别,最好通过示例进行演示。 最佳答案 #[cfg(test)] 标记仅当启用 test 配置选项时才编
当我来的时候,我正在寻找一个很好的解决方法来保持我的 .tmux.conf 文件在系统之间保持一致(我有 OS X 和 Ubuntu,它们有不同的复制/粘贴支持技术)在这条提供解决方案的评论中:htt
所以我有这个主 package Hibernate; import java.util.List; import org.hibernate.Session; import org.hibernate
我的项目根文件夹中有hibernate.cfg.xml文件。 如果我运行的应用程序包含: SessionFactory sessionFactory = new Configuration().con
我收到上述错误。我的 Web 应用程序中已有 xml 文件 hibernate.cfg.xml。除此之外,我在 WebINF lib 文件夹下有 hibernate 所需的完整 jar 文件。 这是完
我在 IntelliJ IDE 中的 hibernate.cfg.xml 有问题。 这是我的 hibernate 配置文件: org.postgresql
我正在尝试使用 pgadmin3 连接到 ubuntu 中的 Postgresql9.1。我的 Pgadmin3 GUI 工具没有提供任何通过右键单击数据库来创建表的选项,但它在我看到的一些视频中可用
您好,我的项目 CFG 文件中的路径列表太长,我如何定义像 $(BDS) 这样的路径快捷方式谢谢 最佳答案 “选项”对话框 ->“环境选项”->“环境变量”。该页面有一个“用户覆盖”部分。这就是您定义
对于 LR 解析器,FIRST 集定义如下 ( source ): FIRST(A) is the set of terminals which can appear as the first ele
我有一种用 CFG 表示的相当简单的语言。 S → A z A → A y A | A x A | A w | v 因为有左递归,递归下降解析器不会削减它。但是,我还需要找到所有可能的解释
Hibernate 的常用配置文件主要分为 2 种:核心配置文件(hibernate.cfg.xml)和映射文件(Xxx.hbm.xml),它们主要用于配置数据库连接、事务管理、Hibernate 本
出于测试目的,我需要 cfg 始终为真/假。对于 true 我使用 #[ cfg( target_pointer_width = "64") ] ... 但显然不够通用。表达 cfg 以获得必要值(v
我有以下常量: const IS_WSL: bool = is_wsl!(); 我希望能够将它与 cfg 属性一起使用来执行条件编译。像这样的东西: #[cfg(const = "IS_WSL")]
我知道给定一个特定的上下文无关语法,要检查它是否有歧义,需要检查是否存在任何可以以不止一种方式派生的字符串。这是不可判定的。 但是,我有一个更简单的问题。给定一个特定的上下文无关文法和一个特定的字符串
以下文法有左递归: T -> Tx | TYx | YX | x X -> xx Y -> Yy | Yx | y 你如何去除左递归。我阅读了维基百科的解释,但我对 CFG 还很陌生,所以它没有多大意
我想将 $cfg['RowActionLinksWithoutUnique'] 设置为 TRUE 以便我可以在 phpMyAdmin 中编辑数据而无需任何主键,但在检查 config.inc.php
考虑以下上下文无关文法的扩展,它允许规则在左侧有一个(或多个)终结符在非终结符的右侧。即形式规则: A b -> ... 右手边可以是任何东西,就像在上下文无关文法中一样。特别是不是 要求,右侧将在末
我是一名优秀的程序员,十分优秀!