2016-07-22 5 views
0

C#에서 프로그래밍 방식으로 등록 된 COM 서버의 경로를 가져 오는 좋은 방법이 있습니까?C#에서 등록 된 COM 서버의 경로를 얻으려면 어떻게해야합니까?

C# 프로젝트에서 참조하는 out-of-process COM 서버 (예 : exe 파일)가 있습니다. 그러나 특정 위치에서 COM 서버를 실행하도록 강제하기 때문에 등록 된 exe 파일의 경로를 확인하기 전에 확인해야합니다. 레지스트리로 다이빙하는 것 외에도 이렇게하는 좋은 방법이 있습니까?

+2

레지스트리 사용은 실제로 LocalServer32 키와 같이 문서화되어 있습니다. https ://msdn.microsoft.com/en-us/library/windows/desktop/ms683844.aspx –

+0

아니요, 좋은 방법이 없습니다. 서버 자체가 쉽게 당신에게 말할 수있을 때 오라클에만 의존하지 마십시오. –

답변

0

기능은 QueryPathOfRegTypeLib입니다. 내가 처음 사용자별로 하나 개의 경로에서 등록하면

:

그러나, 나는 이상한 특질을 알아 차렸다

C : \에 Path1 \ comserver.exe/regserverperuser

및 다음 시스템 수준으로 다른 경로에서 등록 :

C를 : 경로 2는 \ comserver.exe /가 regserver를

그런 다음 QueryPathOfRegTypeLib가 C를 반환 \ : \ Path1 \ comserver.exe이지만 형식 라이브러리를로드 할 때 실제로 시작되는 c : \ Path2 \ comserver.exe입니다 ...