2014-07-24 1 views
2

Windows 7에서 Minesweeper 또는 Mahjong Titans와 같은 게임을 실행 한 다음 게임 메뉴에서 "도움말"을 선택하면 독립형 도움말 창이 표시되어 탐색 할 수 있습니다 다른 주제 (아마도 OS와 함께 제공되는 모든 도움말 파일). 필자는 항상 "온라인 도움말"이 아닌 "오프라인 도움말"을 선택했습니다.Windows 7 도움말 파일을 독립 실행 형으로 열 수 없음

이 파일들을 C#의 버튼 클릭 이벤트에서 열어보고 싶습니다. 문제는이 파일들이 어디에 저장되어 있는지, 어떤 확장자로 저장되었는지 모릅니다.

독립 실행 형 도움말 창이 열려있을 때 작업 관리자는이 프로세스를 C : \ Windows에있는 "HelpPane.exe"로 표시합니다. HelpPane.exe를 두 번 클릭하면 아무 일도 발생하지 않습니다.

도움말 창을 마우스 오른쪽 버튼으로 클릭하고 "소스보기"를 선택하면 기본적으로 웹 페이지라는 것을 알 수 있습니다. 예 < 몸 > 태그는 다음과 같습니다

<BODY helptype="toc" helpurl="mshelp://windows/?tocid=ebd9c148-6e8d-4359-83d5-f4b700ab2f8f" helpsource="local" Lang="en-US">

나는 mshelp에 액세스 할 수 : // 창/... C# 프로그램에서? 아니면 내가 원하는 것을 할 수있는 또 다른 방법이 있습니까?

답변

5

HelpPane.exe는 Out-of-Process COM 서버입니다. 이를 활성화하여 자신의 C# 프로그램에서 콘텐츠를 쉽게 표시 할 수 있습니다. 시작하려면 Project + 참조 추가를 사용하고 c : \ windows \ helppane.exe를 선택하십시오. 그러면 "APClientHelpPane"네임 스페이스로 생성 된 helppane.exe에 포함 된 COM 형식 라이브러리에서 interop 라이브러리가 만들어집니다.

Windows 도움말 항목의 콘텐츠 파일을 표시하는 샘플 프로그램 :

using System; 
using WinHelp = APClientHelpPane; 

class Program { 
    static void Main(string[] args) { 
     var obj = new WinHelp.HxHelpPaneServer(); 
     string docpath = @"C:\Windows\Help\Windows\ContentStore\en-US\windowsclient.mshc"; 
     obj.DisplayContents(docpath); 
    } 
} 

윈도우 8.1의 EN-US 에디션에서 테스트. Windows 7에서 얼마나 많은 행운을 빕니다. 실제로 .mshc 파일의 경로를 수정해야 할 것입니다. 이것은 물론 당신과 관련이 있어야합니다. Microsoft는 Windows의 이후 버전에서도이 기능을 유지할 의무가 없으며,이 자동화 인터페이스는 문서화되어 있지 않습니다. 다양한 Windows 프로그램의 항목 이름을 리버스 엔지니어링하는 방법은 분명하지 않지만 표시되는 내용을 검사하여 찾을 수있는 mshelp : // URL을 사용할 수 있다고 생각되지만 Windows 버전간에 안정성이 있어야합니다. 어려운 길을 찾아라.

Microsoft Help Viewer SDK에 관심있는 사용자가 있습니다. MSHC 저작 도구는 this blog post에 나와 있습니다.

+0

나는 기쁨을 경험하고있다! 이 코드는 훌륭하게 작동합니다. 나는 .mshc 경로를 'C : \ ProgramData \ Microsoft \ HelpLibrary \ content \ Microsoft \ store' 으로 변경해야한다고 생각했는데, 그 이유는 그것이 .mshc 파일에 대한 하드 드라이브를 검색 할 때 나타나기 때문이며 경로 너는 일을했다. 그리고 이것은 제가 사용하기 위해 작성한 프로그램이므로 앞으로의 호환성에 너무 관심이 없습니다. 이제는 내가 준 링크 덕분에 특정 주제 이름을 풀어 보겠습니다. – Margotbean

+0

업데이트 : .mshc 파일의 두 경로 모두 작동하고 동일한 도움말 페이지를 엽니 다. 기묘한. – Margotbean

+0

아마 같은 파일 일 것입니다. 마이크로 소프트는 하드 링크를 사용하여 Windows 호환성을 유지하는 것을 좋아합니다. c : \ windows \ system32의 모든 파일이 실제로 c : \ windows \ winsxs에 저장됩니다. –

관련 문제