2012-08-31 4 views
1

ShellExecute(NULL, L"open", szSomeDirectory, 0, 0, SW_SHOWDEFAULT)을 사용하여 탐색기에서 디렉토리를 엽니 다.ShellExecute는 열린 폴더에 대한 액세스 권한을 얻습니다.

나는 일반적으로 You currently do not have permission to access this folder.과 함께 묻는 메시지를 열려고하는데, 액세스 권한을 얻고 UAC 프롬프트를 표시하는 옵션을 제공합니다.

Explorer는 ShellExecute를 실행할 때 Access Denied이라는 오류 메시지를 표시합니다.

내 프로그램이 관리자 권한으로 실행되고 있지만 문제가되지 않습니다.

이 폴더를 열려면 어떻게 액세스해야합니까?

+0

프로그램 '.exe'를 마우스 오른쪽 버튼으로 클릭하고 '관리자 권한으로 실행'을 선택하십시오. 운영 체제에 따라 관리자로 로그온 한 경우에도 시작한 모든 프로세스가 상승 된 권한으로 실행되어야 함을 의미합니다. – hmjd

+0

나는 그것을 시도했다. 왜냐하면''열린 ''동사는 단지 탐색기에게 디렉토리로 이동한다고 말하기 때문입니다. Explorer에서 액세스 거부 메시지를 보내고 있습니다. – Josh

+0

아마도 explorer elevated를 실행해야 할 것입니다. 'ShellExecute (NULL, L "runas", L "explorer", szSomeDirectory, 0, SW_SHOWDEFAULT)' –

답변

1

는 그것을 알아 냈다.

내 사용자 계정에 파일에 대한 액세스 권한이 없습니다.

내 솔루션은 내가 파일을 액세스 할 수 있는지 확인하기 위해 ShellExecute 전에 AccessCheck를 사용하는 것이 었습니다, 나는 전체 액세스 할 수있는 로그온 사용자 계정에 대한 ACE를 추가 할 SetNamedSecurityInfo를 사용할 수없는 경우.

관련 문제