2009-10-28 1 views
2

Windows 셸 확장에 대해 이야기하고 있습니다.FileOpen 대화 상자에서 셸 확장을 사용하지 않도록 설정하는 방법

필자는 사용자 정의 된 파일 유형의 특정 속성 (예 : * .filetype)을 표시 할 수있는 셸 확장자가 있습니다. 물론 explorer.exe 프로세스에 셸 확장 dll이로드됩니다. 그러나 이제 모든 응용 프로그램에서 FileOpen 대화 상자를 실행하고 해당 대화 상자 (예 : 메모장)의 파일 속성을 확인하면 이러한 셸 확장 DLL이 notepad.exe 프로세스로로드됩니다.이 경우 필자는 피하기를 원합니다.

FileOpen 대화 상자에서 특정 셸 확장을 사용하지 않도록 설정할 수 있습니까?

감사합니다.

답변

2

실제 (큰) 셸 확장 DLL을로드하는 것 외에는 아무 것도 수행하지 않는 shim dll을 만듭니다. 해당 shim dll의 유일한 작업은 현재 프로세스가 "explorer.exe"인지 확인하는 것입니다. 그렇다면 심은 실제 DLL을로드하고 모든 호출을 전달합니다. 그것이 아니라면 심은 실제 DLL을로드하지 않고 단순히 E_NOTIMPL 또는 그와 비슷한 것을 모든 요청에 ​​반환합니다.

+1

하지만 우리가 원하는 모든 셸 확장에 대해 이러한 작업을 수행해야합니다. –