4 Stimmen

Wie kann ich aus einem Word 2007-Dokument eine Verknüpfung zu einem chm-Datei-Thema herstellen?

Gibt es eine Möglichkeit, von einem Microsoft Word docx-Dokument auf eine chm-Datei und darin auf ein bestimmtes Thema zu verweisen? Etwa in der Art von:

"Weitere Informationen zu dieser Eigenschaft finden Sie unter [link ref="./SomeDirectory/somedocument.chm!Sometopic.Somesubtopic" text="MyClass.MyProperty"]

0 Stimmen

WAG hier.... Bietet 2007 noch die Möglichkeit, OLE (Object Linking and Embedding) einzufügen?

2voto

Dirk Vollmar Punkte 166522

Ich glaube nicht, dass ein einfacher Dateilink zur .chm-Datei ausreicht.

Bei mir funktioniert das folgende Linkformat (beachten Sie, dass sich die .chm-Datei an einem vertrauenswürdigen Ort befinden muss; Netzwerkfreigaben funktionieren standardmäßig nicht):

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

EDIT

Bei relativen Pfaden scheint die folgendes Muster verwendet werden:

ms-its:. \help.chm ::/html/main.htm

(siehe Verlinkung zu einem CHM - einige Hinweise )

Dieser Link wird im IE geöffnet (klicken Sie mit der rechten Maustaste auf den HTML-Help-Viewer, um die Position dieses Links unter Eigenschaften anzuzeigen).

Eine andere Möglichkeit wäre, einen MACROBUTTON einzufügen und ein Makro zu haben, das den HTML-Hilfe-Viewer öffnet. Dies wäre der VBA-Code:

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 Stimmen

Aus Sicherheitsgründen ist es mir nicht gestattet, Makros zu verwenden. Der mk:@MSITStore: C:\SomeDirectory\help.chm ::/helppage.htm-Links funktionieren jedoch problemlos. Es gibt nur ein Problem: Ich kann keinen absoluten Pfad angeben, sondern muss einen relativen Pfad verwenden (die chm und die docx befinden sich immer im selben Ordner).

0voto

Frank V Punkte 24349

Sie sollten in der Lage sein, dies zu tun, indem Sie den Hyperlink auf die Datei setzen und den "#"-Kopfanker verwenden (ich bin mir nicht sicher, wie er heißt...), aber hier ist ein Beispiel:

C:\Helpfiles\Help.chm#Topic

0 Stimmen

Aber wie bekomme ich den Namen des Themas? Sie sind in der chm verschachtelt. C:\Helpfiles\Help.chm #MyClassName funktioniert ausnahmsweise nicht.

0 Stimmen

In der chm-Datei auf der rechten Seite habe ich einen Baum (Anmerkung: keine Liste) von Themen. Nun muss ich nur noch den Namen des Baumknotens angeben (z.B. C:\Helpfiles\Help.chm #MySubSubTopic) führt nicht zu den erwarteten Ergebnissen. Allerdings funktioniert auch #MyMainTopic/MySubTopic/MySubSubTopic nicht. Ich muss den Themennamen finden.

0voto

Treb Punkte 19459

Um die Adresse einer Seite in einer chm-Datei zu finden, müssen Sie auf die Seite (die Seite selbst, nicht den Link im Inhaltsbaum) klicken und "Eigenschaften" wählen. Unter "Adresse (URL)" finden Sie die gesuchte Adresse, etwa so

mk:@MSITStore: D:\Tools\Foo\Bar.chm ::/hilfe/grundlagen/index.html

Und das Gute daran: Sie können den Text im Eigenschaftsblatt mit der Maus markieren und ihn kopieren ;-)

Ich habe keine Ahnung, wie Sie die URL in Word einfügen müssen, damit das funktioniert, aber eine kurze Versuch und Irrtum sollte Sie dorthin bringen.

0 Stimmen

In diesem Fall muss sich die chm-Datei an einem statischen Ort befinden, der sich nie ändert, da der absolute Pfad angegeben ist. Es wäre viel besser, wenn es eine Möglichkeit gäbe, einen relativen Pfad anzugeben. In meinem Szenario wird dem Kunden ein Ordner geliefert, der sowohl .chm als auch .docx enthält

0 Stimmen

Ersetzen Sie einfach den absoluten Pfad durch einen relativen: mk:@MSITStore:.. \chm\Bar.chm ::/help/base/index.html. Ich vermute, dass Sie den Teil "mk:@MSITStore:" ohnehin nicht benötigen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X