2012-03-31 7 views
3

Silverlight에서 COM으로 노출되는 다양한 API를 호출하려고합니다. 등록 된 자동화 서버의 일부이고 해당 Progid가있는 경우에만 가능합니다. 예를 들어, Word는 "Word.Application"입니다. 등록 된 모든 서버 목록을 해당 progids와 함께 얻으려면 어떻게합니까?모든 COM 자동화 서버 목록을 얻으려면 어떻게해야합니까?

구성 요소 서비스 스냅인을 찾았지만 거기에서 알고있는 progids를 찾을 수 없습니다. 편집 : 스냅인은 거기에 있어야하는 것처럼 보입니다. 일부 COM + 및 DCOM 응용 프로그램의 응용 프로그램 ID를 표시하는 속성 창이 있지만 Word와 같은 확실한 서버를 찾을 수 없습니다. COM + 트리에는 6 개의 항목 만 들어 있습니다.

+1

어떻게 작동하는지 알 수 없습니다. progid 또는 CLSID를 먼저 알아야합니다. 그러면 COM은 레지스트리에서이를 구현하는 실행 파일을 찾을 수 있습니다. 다른 방법으로 서버를 사용하는 방법을 알지 못하더라도 서버를 올바르게 사용하는 방법을 알고 싶습니다. 그건 작동하지 않습니다. –

+0

@passant 나는 당신이 내가 알고 싶어하는 것을 오해했다고 생각하지만 그럼에도 불구하고 나를 도왔습니다. 당신이 말하는 것은 레지스트리에 디렉토리가 있음을 의미합니다. 따라서 레지스트리에서 목록을 가져올 수 있어야합니다. 정확히 어디에서 정확하게 알 필요가 있습니다. 더 많이 아십니까? – John

+0

@passant 아, 내가 찾은 것 같아. 레지스트리의 전체 HKEY_CLASSES_ROOT 폴더입니다. 그것이 내가 알고 싶었던 것입니다. – John

답변

5

자동화 서버 목록은 HKEY_CLASSES_ROOT 아래의 레지스트리에있는 것으로 보입니다. Silverlight에서 키의 이름은 progid이고 CLDID는 CLSID라는 하위 키 값입니다.

Hans Passant가 내 질문에 레지스트리를 언급 한 후이를 발견했습니다.

1

PrimalScript은 Sapien Technologies Inc.에서 사용 가능한 모든 COM 개체/인터페이스를 시스템에 나열하는 훌륭한 작업을 수행하는 개체 브라우저입니다.