어떤 안전한 방법은 마이크로 소프트 오피스의 설치된 구성 요소를 감지 할 수 있습니까?

StackOverflow https://stackoverflow.com//questions/10703927

문제

나는 마이크로 소프트 오피스의 구성 요소(있는 경우)가 주어진 워크 스테이션에 설치되어 있는지 감지 할 수있는 가장 안전한 방법을 찾고 있습니다.저는 이것이 세르베르폴트에게도 질문으로 여겨질 수 있다는 것을 알고 있습니다.하지만 저는 이것을 스크립트에서 사용하게 될 것이고 많은 사람들이 사무실의 내부 작동에 더 익숙하기 때문에,저는 이것이 가장 좋은 질문이라고 생각했습니다.

나는 제거 키를 살펴 봤는데,하지만 실제로 시스템에 존재하지 않는 구성 요소를 보여줍니다.나는 이것이 오피스가 첫 번째 액세스에 구성 요소를 설치할 수있는 방식과 관련이 있다고 생각합니다.나는 경로가 이론적으로 변경 될 수 있으므로 실행 파일을 찾는 것을 좋아하지 않습니다.

도움이 되었습니까?

해결책

나는 계정에 32 비트 및 64 비트 윈도우 설치 사이의 차이를 복용,특정 레지스트리 키에 대한 테스트를 끝났다.다음 레지스트리 위치/값에주의를 기울이고 있습니다:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\-64 비트 윈도우 설치의 기본 오피스 12 키
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\-32 비트 윈도우 설치의 기본 오피스 12 위치
  • Office base path\Outlook\InstallRoot\Path-키 의미 아웃룩 설치 경로
  • Office base path\Registration\{90120000-0012-0000-0000-0000000FF1CE}-사무실 12 표준 가이드를위한 열쇠
  • Office base path\Registration\{90120000-0011-0000-0000-0000000FF1CE}-키 사무실 12 전문 플러스 가이드

이 위치로 나는 할 수 있었다:

  1. 사무실 설치 여부를 감지합니다.
  2. 설치된 오피스 버전을 검색합니다.
  3. 아웃룩이 설치되어 있는지 여부를 감지합니다.

나는 이것보다 더 세분화하려고 시도하지 않았습니다.

다른 팁

EXE 또는 DLL의 경로에 의존 할 수없는 경우, 다양한 구성 요소를 설치하는 스냅 샷 이전 및 이후의 레지스트리 (이 가공 도구가 존재하는 많은 도구)를 diff합니다.그러나 내 경험에서는 Office 용 설치된 구성 요소를 탐지하기 위해 DLL 및 다른 파일의 존재를 테스트 할 필요가 있습니다 (예 : VBA DLL이 설치된 Visual Basic 모듈의 존재를 탐지하기 위해 VBA DLL을 테스트해야했습니다).파일의 경로는 너무 많이 변경할 수 있습니다.당신은 단지 32 비트와 64 비트 패치, winxp 및 win7 경로를 인식해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top