检查SHBrowseForFolder的权限,类似于GetSaveFileName,C ++ / Win32

时间:2013-09-19 07:58:30

标签: c++ c winapi

我有一个使用SHBrowseForFolder和GetSaveFileName的程序。

当我使用GetSaveFileName并且所选目录没有正确的权限时,它会自动显示当前用户没有适当权限的错误。

当我使用SHBrowseForFolder时,我需要进行类似的检查。

尝试过CreateDirectory但是如果选择的目录是C:则成功,而GetSaveFileName只允许管理员在这里写。

1 个答案:

答案 0 :(得分:0)

您可以使用以下方法检查权限:

  1. GetProcessToken
  2. GetTokenInformation(获取用户的tokenuser和SID)
  3. GetNamedSecurityInfo(获取给定文件夹的DACL)和
  4. BuildTrusteeWithSid(pTrustee,pSidUser);
  5. GetEffectiveRightsFromAcl
  6. 有关详细信息,请参阅Check User’s Permissions On A File or Folder文章。