【发布时间】:2012-08-31 15:15:39
【问题描述】:
我正在使用ShellExecute(NULL, L"open", szSomeDirectory, 0, 0, SW_SHOWDEFAULT) 在资源管理器中打开一个目录。
我正在尝试打开一个通常会提示我 You currently do not have permission to access this folder. 的目录,并允许我选择获取访问权限并显示 UAC 提示。
当我执行 ShellExecute 时,资源管理器给我一条错误消息,说 Access Denied。
我的程序以管理员权限运行,但这似乎无关紧要。
我怎样才能获得打开这个文件夹的权限?
【问题讨论】:
-
尝试右键单击程序
.exe并选择Run As administrator。根据您的操作系统,即使您以管理员身份登录,也必然意味着您启动的所有进程都以提升的权限运行。 -
我试过了。我认为因为
"open"动词只是告诉资源管理器导航到目录。 Explorer 正在给我拒绝访问的消息。 -
您可能需要提升资源管理器。应该这样做:
ShellExecute(NULL, L"runas", L"explorer", szSomeDirectory, 0, SW_SHOWDEFAULT) -
不幸的是,这不起作用。也许这会有所帮助:`C:\Dir1\Dir2\Dir3` - Dir2 默认情况下我无权访问。我正在尝试在我的程序中打开 Dir3。
标签: c++ windows winapi shellexecute