无法以标准用户身份创建或写入文件

时间:2010-12-20 06:55:51

标签: c++ windows-7 windows-vista uac

我的应用程序在连接或断开服务器时会创建一个日志文件。这很有效,赢得XP。

当我在Vista和Win 7中以管理员身份运行它时没有问题。但是如果我在Vista或Win7中以标准用户身份运行它,则无法创建日志文件,我知道这是针对UAC的。 / p>

但我怎样才能绕过这种情况,以便我的应用程序以管理员身份运行。我是否需要在安装应用程序时添加任何注册表项,以便它始终以管理员身份运行。

1 个答案:

答案 0 :(得分:4)

如果你真的想,你可以add a manifest导致你的应用程序在启动时需要UAC提升,但通常不是你应该做的。

更有可能的是,你正在写一条你不应该走的路。用户模式应用程序应该只写入当前用户文件夹或C:\Users\Public文件夹,而日志之类的内容应该放在C:\Users\Current User Name\Application Data\Your Program Name\中。要获取ApplicationData路径,请使用Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)。或者,如果您希望所有用户共享该文件,请使用Environment.SpecialFolder.CommonApplicationData