| |
VB & Windows APIhwnd wird nicht gefunden | | | Autor: Judi | Datum: 23.08.08 17:25 |
| Guten Tag,
ich bin neu hier im Forum und hoffe, dass ihr mir weiterhelfen könnt.
Mein Betriebssystem ist Windows XP sp2.
Ich habe für unsere Firma eine umfangreiche Applikation in Word 2003 geschrieben und möchte nun eine Dokumentation mit Hilfe des Html Help Workshops anbieten.
Jetzt bin ich aber genau auf den hier beschriebenen Bug gestoßen
http://www.activevb.de/tutorials/tut_hilfedateien/helpfiles.html
und habe dann nach diesem Workaround
http://support.microsoft.com/default.aspx?scid=kb;en-us;244140
die HHCtrlAV.dll registriert und connect=1 gesetzt.
In den Verweisen im Projekt wird das add-inn als DLL auch angezeigt und ich kann sie für das Projekt anhaken.
Dies ist mein Scriptcode
Private Declare Function HtmlHelp Lib "hhctrl.ocx" _
Alias "HtmlHelpA" (ByVal hwndCaller As Long, _
ByVal pszFile As String, ByVal uCommand As _
Long, ByVal dwData As Long) As Long
Private Const HH_DISPLAY_TOPIC = &H0
Private Const HH_CLOSE_ALL = &H12 Zum Aufruf der Hilfedatei
Private Sub cmdHilfe_Click()
Dim Datei As String
Dim strPfadGruppe As String
'strPfadGruppe = Options.DefaultFilePath(wdWorkgroupTemplatesPath)
'Datei = strPfadGruppe & "\Hilfe\hilfedatei.chm"
Datei = "c:\hilfe\pts.chm"
Call HtmlHelp(0, Datei, HH_DISPLAY_TOPIC, ByVal 0&)
End Sub Beim Beenden des Formulars, testweise durch den Abbrechen-Button
Private Sub cmdAbbrechen_Click()
'Call HtmlHelp(Me.hwnd, "", HH_CLOSE_ALL, 0)
HtmlHelp Me.hwnd, "", HH_CLOSE_ALL, 0&
Unload Me
ActiveDocument.Saved = True
ActiveDocument.Close
End Sub Aber leider wird hwnd nicht als Objekt oder Variable erkannt und es kommt natürlich ein entsprechender Fehler.
Gibt es evtl. noch eine Routine, die ich ausführen muss?
Achso, sollte ich in diesem Board falsch sein, bitte verschiebt mich dann ins richtige.
Herzliche Grüße, die Judi!
Herzliche Gr??e, die Judi!
Beitrag wurde zuletzt am 23.08.08 um 17:26:40 editiert. | |
Re: hwnd wird nicht gefunden | | | Autor: VBStein | Datum: 24.08.08 10:06 |
| Hai,
hwnd kann nicht zu einem Fehler führen, da der Datentyp Long sehr wohl bekannt ist. Was nicht bekannt sein dürfte wäre: HtmlHelp.
Entweder hast Du die OCX nicht, sie nicht richtig registriert oder ähnliches. Auf jedenfall schlägt der Declare Aufruf offensichtlich fehl. | |
Re: hwnd wird nicht gefunden | | | Autor: Judi | Datum: 24.08.08 19:41 |
| Hallo
vielen Dank für die Rückantwort.
hwnd wird als Eigenschaft des Userforms oder als Wert nicht erkannt, zumindest wird mir dies beim Debuggen angezeigt (markiert). Da der Datentyp long ist, habe ich jetzt einfach eine 0 anstelle von hwnd gesetzt. 0 geht ja und somit funktioniert das Schließen der Hilfe gleichzeitig mit dem Schließen des Userforms.
Also die OCX ist korrekt registriert, das hatte ich alles im Vorfeld schon geprüft.
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
HtmlHelp 0, "", HH_CLOSE_ALL, 0&
End Sub Herzliche Gr??e, die Judi! | |
Re: hwnd wird nicht gefunden | | | Autor: effeff | Datum: 25.08.08 14:10 |
| Du benutzt VBA anstelle von VB6. Dort gibt es kein hwnd... ;o)
EALA FREYA FRESENA | |
Re: hwnd wird nicht gefunden | | | Autor: VBStein | Datum: 26.08.08 18:20 |
| Hai,
nein. Lasse einfach nur Me.hwnd weg und gib 0 an. Die Help wird trotzdem korrekt ausgeführt ;)
Wenn nicht, dann nimm GetForegroundWindow() anstatt Me.hWnd | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|