Как мне связать тему файла chm с документом Word 2007? - PullRequest
4 голосов
/ 21 ноября 2008

Есть ли способ ссылки на файл chm и на определенную тему в документе Microsoft Word docx? Что-то в строках:

"Для получения дополнительной информации об этом свойстве см. [Link ref =" ./ SomeDirectory / somedocument.chm! Sometopic.Somesubtopic "text =" MyClass.MyProperty "]

Ответы [ 3 ]

2 голосов
/ 26 ноября 2008

Я не думаю, что простая файловая ссылка на файл .chm сделает эту работу.

Для меня работает следующий формат ссылок (обратите внимание, что файл .chm должен находиться в надежном месте, сетевые папки не будут работать по умолчанию):

тк: @MSITStore: C: \ SomeDirectory \ help.chm :: / helppage.htm

EDIT

Для относительных путей кажется необходимо использовать следующий шаблон:

мс-его:. \ Help.chm :: / html / main.htm

(см Связь с CHM - Некоторые заметки )

Эта ссылка будет открыта в IE (щелкните правой кнопкой мыши в средстве просмотра справки HTML, чтобы увидеть расположение этой ссылки в свойствах).

Другой вариант - вставить MACROBUTTON и создать макрос, открывающий средство просмотра справки HTML. Это будет код VBA:

Declare Function HtmlHelp Lib "HHCtrl.ocx" Alias "HtmlHelpA" _
   (ByVal hwndCaller As Long, _
   ByVal pszFile As String, _
   ByVal uCommand As Long, _
   dwData As Any) As Long

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Function GetWindowHandle() As Long
    'obtain Word's hwnd
    'NOTE: there is a possibility of getting the wrong hwnd.  If two word windows
    'are open with the same caption, this *could* happen.  In order to prevent this,
    'you can either change the caption to something strange before trying to find it,
    'or you can compare processId's with GetCurrentProcessId and GetWindowThreadProcessId
    'You can always search the top level windows yourself.

    GetWindowHandle = FindWindow(Word8ClassName, ActiveDocument.Windows(1) & " - " & ActiveDocument.Application.Caption)

End Function

Public Function ShowHelp(strPage As String)

    On Error Resume Next

    HtmlHelp GetWindowHandle, "fullpathtohelpfile.chm", HH_DISPLAY_TOPIC, ByVal strPage

End Function
0 голосов
/ 26 ноября 2008

Чтобы найти адрес страницы в файле chm, вам нужно щелкнуть ее правой кнопкой мыши (сама страница, а не ссылка в дереве содержимого) и выбрать «Свойства». В разделе «Адрес (URL)» вы найдете то, что ищете, что-то вроде

тк: @MSITStore: D: \ Tools \ Foo \ Bar.chm :: / помощь / база / index.html

И хорошо: вы можете выделить текст в окне свойств мышью и скопировать его; -)

Что касается того, как вы должны вставить URL в слово, чтобы это работало, я понятия не имею, но короткий метод проб и ошибок должен привести вас туда.

0 голосов
/ 22 ноября 2008

Вы должны быть в состоянии сделать это, установив гиперссылку на файл и используя привязку заголовка "#" (я не уверен, как она называется ...), но вот пример:

C:\Helpfiles\Help.chm#Topic

Я не уверен, что это сработает, но я думаю, что это сработает ...

С уважением,
Frank

...