1

ShellExecute(NULL, L"open", szSomeDirectory, 0, 0, SW_SHOWDEFAULT)用来在资源管理器中打开一个目录。

我正在尝试打开一个通常会提示我的目录,You currently do not have permission to access this folder.并为我提供访问权限并显示 UAC 提示的选项。

当我执行 ShellExecute 时,资源管理器给了我一条错误消息,说Access Denied.

我的程序以管理员权限运行,但这似乎无关紧要。

如何获得打开此文件夹的权限?

4

2 回答 2

1

弄清楚了。

我的用户帐户无权访问该文件。

我的解决方案是使用AccessCheckbeforeShellExecute查看是否可以访问该文件,如果无法访问,请使用SetNamedSecurityInfo为具有完全访问权限的登录用户帐户添加 ACE。

于 2012-08-31T19:26:51.427 回答
0

您可以在程序的链接器清单中设置 UAC 级别。

看看这个:奇怪的文件权限,如果应用程序以管理员身份运行

于 2012-08-31T16:05:48.497 回答