【发布时间】:2010-11-09 15:46:18
【问题描述】:
我有一个非常旧的应用程序,现在需要对 Windows Server 2008 友好。它是一个作为单例工作的用户应用程序。它使用注册表的 HKLM 部分来读取和写入配置,并创建日志文件。
主要问题:就当前最佳实践而言,如何使应用程序与 UAC 一起工作?
我最初的方法是运行非提升的应用程序,如果需要更改配置,用户手动重新启动它提升,重新配置,然后重新启动到非提升。问题是日志文件也可以创建提升,然后非提升的应用程序不能写入它。可能的解决方法:
- 不要在提升模式下执行任何暗示写入日志文件的操作。但是如何检测应用程序是否处于提升模式?
- 即使在提升模式下也可以创建具有非提升权限的日志文件。怎么样?
- 如果在打开现有日志文件时访问被拒绝,请尝试创建另一个日志文件。
- 一直在高处跑步。
到目前为止,第一个选项看起来最好,但是如何检测海拔?也许还有其他选择?也许有一些完全不同的方法?如果可能的话,我希望不必过多地更改代码。
【问题讨论】:
标签: windows visual-c++ registry uac