【发布时间】:2011-04-09 12:26:16
【问题描述】:
我的程序必须以管理员身份运行并创建一些文件。如果我通过右键单击图标并选择“以管理员身份运行”手动运行它——一切正常——所有用户都可以访问创建的文件。但是,如果 ShellExecuteEx 使用“runas”动词从另一个程序启动的程序 - 创建的文件没有 BUILTIN\Users 组的访问条目。只有管理员用户可以读取这些文件。
【问题讨论】:
-
这真的取决于您如何使用 Windows 的 UAC,如果您的应用程序是“本机 C++ 程序”或使用过 .NET API(如果您使用 Visual C++)。
-
它是原生 C++ 程序。仅使用 WinAPI
-
我认为尝试修复它是没有意义的。无论你做什么,微软都会再次搞砸它。考虑一下,根据关于 UAC 的 Wikipedia 文章中的报告,它可能只是为了非常明显地向用户展示 Windows 正在做一些安全方面的事情,即被设计成令人讨厌和搞砸的事情。
标签: c++ winapi uac shellexecute runas