我不太了解Windows UAC...
我需要我的程序能够更新文件并将文件添加到属于程序的特定目录。此目录可能是 Program Files 中应用程序的子目录,例如 c:\Program Files\MyApp\Data,也可能安装在其他位置。
我相信,如果它位于程序文件下,那么我的程序将被阻止在那里写入,除非它以管理员身份运行并且已提升其访问权限。这是正确的吗?
我需要能够更好地更新该目录中的文件,而无需调用提升的权限,并且主应用程序仍然“ protected ”,只允许访问该目录。我无法将数据文件夹移动到其他地方,因为它是我需要与之交互的第 3 方应用程序。
如何确定 Program Files 中的文件夹需要 UAC?程序文件在某种程度上是特殊的还是只是权限?如果我要调整该数据子目录的权限,以便运行该程序的用户帐户具有写访问权限,那么我的应用程序是否可以在没有特殊权限的情况下更新该目录中的文件?
或者有没有我没有想到的更好的方法来实现这一目标?我的更新程序需要使用java,因此获得提升的权限是一件痛苦的事情。我想我需要编写一个 C++ 包装器来运行 java VM,以便我可以为该包装器提供适当的 list 。并非不可能,但我真的不想这样做。
最佳答案
尝试在安装时更改应用程序的目录安全设置,以允许“经过身份验证的用户”写入权限。
关于uac - 了解 Windows Vista/7 上的 UAC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1812051/