我的应用程序将其设置保存在其可执行文件夹下,该文件夹恰好位于Windows(C:\ ProgramFiles)下的安装位置。我遇到的问题是我使用fopen_s并将文件打开为二进制文件但是当我的应用程序保存设置时Windows不允许它。我认为它必须做一些权限,但我不知道在哪里看。也许我应该将目录更改为将用户/文档保存为设置的位置。
对此有任何想法,为什么它不起作用?为什么不允许fopen_s保存安装我的应用程序的文件?
答案 0 :(得分:3)
在普通用户权限下运行的应用程序具有对%ProgramFiles%目录的只读访问权限。这是设计的。如果可以将文件保存到此目录,则共享同一台PC(具有不同帐户)的多个用户将覆盖彼此的设置文件。
调整代码以将其设置保存到%LOCALAPPDATA%目录。使用SHGetKnownFolderPath API获取此目录路径。
答案 1 :(得分:-1)
我遇到了同样的问题,但是使用linux,所以我所做的就是尝试在su模式下运行程序。 您尝试使用Windows的一件事是尝试关闭UAC(用户帐户控制)设置。
1>单击“开始”按钮“开始”按钮的图片,然后单击“控制面板”,打开“用户帐户控制设置”。在搜索框中,键入uac,然后单击“更改用户帐户控制设置”。
2 - ;要关闭UAC,请将滑块移动到“从不通知”位置,然后单击“确定”。需要管理员权限如果系统提示您输入管理员密码或进行确认,请键入密码或提供确认。您需要重新启动计算机才能关闭UAC。
现在它不会提示用户身份验证或运行程序的通知,因此您的程序可以顺利运行或尝试打开具有管理权限的cmd,然后尝试从中运行程序。