필자는 ATL을 사용하여 셸 확장 (IContextMenu
, IShellExtInit
, IExtractIcon
& IPersistFile
)을 만들었습니다.셸 확장은 Windows 탐색기에서 작동하지 않지만 다른 프로그램에서 작동합니까?
재미있는 것은 모두가 같은 & "무료 사령관" "총 사령관"와 같은 일부 파일 - 관리자 좋은,하지만 완전히 윈도우 탐색기에서 실패 할 것입니다 :
내가 바로 클릭 내 TC ("Total Commander")에 등록 된 파일 (예 : *.000
)이 있으면 확장 프로그램이 작동합니다. 내 로그와 상황에 맞는 메뉴에서 아이콘이 표시된 항목이 나타납니다.
하지만 Win-Explorer를 사용하면 아무 일도 일어나지 않습니다! 아무 로그 항목도 나타나지 않습니다., 컨텍스트 메뉴에 증거가 없습니다 - 아무 것도 없습니다! 완전한 PC 재시작도 도움이되지 않습니다. 물론
내 CLSID
에 ShellEx\MyX\ContextMenuHandlers
및 ShellEx\IconHandler
키뿐만 아니라 Explorer의 ...\Shell Extensions\Approved\
, 그들은 모두 포인트를 등록했다. Windows 7을 사용합니다.
여기서 무엇을보고 싶습니까?
64/32 비트? OS가 64 비트 인 경우 탐색기는 64 비트가되며 모든 셸 확장은 64 비트 여야합니다. Total Commander의 최신 버전은 32 비트 전용입니다. –
@SevaTitov : 맞아. 나는 64 비트 OS를 사용하지만 32 비트 앱을 컴파일하고 등록했다. 그래서 InprocServer32 대신 64 비트 DLL을 위해 어떤 키를 만들어야합니까? – Tar
이 바이너리를 64 비트 및 regsvr32로 컴파일하면됩니다. 레지스트리 키는 여전히 InprocServer32입니다. –