ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   programmatically close help file before Excel closes? (https://www.excelbanter.com/excel-programming/272163-programmatically-close-help-file-before-excel-closes.html)

RB Smissaert

programmatically close help file before Excel closes?
 
Using Excel XP.
I am having the following problem.

Have a userform that can launch a .chm help file with the following code:

'this API function is for displaying the help file
Private Declare Function HtmlHelpTopic Lib "hhctrl.ocx" _
Alias "HtmlHelpA" _
(ByVal hWnd As Long, _
ByVal lpHelpFile As String, _
ByVal wCommand As Long, _
ByVal dwData As String) As Long


Sub ShowHtmlHelp(ByVal strHelpFile As String, _
Optional ByVal strHelpPage As String)

Const HH_DISPLAY_TOPIC As Long = &H0

On Error Resume Next
HtmlHelpTopic 0&, strHelpFile, HH_DISPLAY_TOPIC, strHelpPage

End Sub


Sub ShowHelp()

Dim AddinFolder As String

AddinFolder = _
Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) - 21)

ShowHtmlHelp AddinFolder & "\Test.chm"

End Sub


This works all fine.

The problem is when the help file is loaded, the userform gets closed and
then Excel gets closed.
Excel then crashes.
So I have to make sure that the help file gets closed before Excel closes.
Perhaps I need an API function here, but I can't figure it out.
Thanks for any advice.


RBS




Stephen Bullen

programmatically close help file before Excel closes?
 
Hi RB,

The return value from the call to HtmlHelp is the hWnd of the help window,
which you should store in a module-level variable, then use the SendMessage
API function to send it a WM_CLOSE message to close it.

Regards

Stephen Bullen

Using Excel XP.
I am having the following problem.

Have a userform that can launch a .chm help file with the following code:

'this API function is for displaying the help file
Private Declare Function HtmlHelpTopic Lib "hhctrl.ocx" _
Alias "HtmlHelpA" _
(ByVal hWnd As Long, _
ByVal lpHelpFile As String, _
ByVal wCommand As Long, _
ByVal dwData As String) As Long

Sub ShowHtmlHelp(ByVal strHelpFile As String, _
Optional ByVal strHelpPage As String)

Const HH_DISPLAY_TOPIC As Long = &H0

On Error Resume Next
HtmlHelpTopic 0&, strHelpFile, HH_DISPLAY_TOPIC, strHelpPage

End Sub


This works all fine.

The problem is when the help file is loaded, the userform gets closed and
then Excel gets closed.
Excel then crashes.
So I have to make sure that the help file gets closed before Excel closes.
Perhaps I need an API function here, but I can't figure it out.
Thanks for any advice.



Regards

Stephen Bullen
Microsoft MVP - Excel
www.BMSLtd.co.uk


RB Smissaert

programmatically close help file before Excel closes?
 
Stephen,

Thanks for that. Got it sorted now.

RBS


"Stephen Bullen" wrote in message
...
Hi RB,

The return value from the call to HtmlHelp is the hWnd of the help window,
which you should store in a module-level variable, then use the

SendMessage
API function to send it a WM_CLOSE message to close it.

Regards

Stephen Bullen

Using Excel XP.
I am having the following problem.

Have a userform that can launch a .chm help file with the following

code:

'this API function is for displaying the help file
Private Declare Function HtmlHelpTopic Lib "hhctrl.ocx" _
Alias "HtmlHelpA" _
(ByVal hWnd As Long, _
ByVal lpHelpFile As String, _
ByVal wCommand As Long, _
ByVal dwData As String) As Long

Sub ShowHtmlHelp(ByVal strHelpFile As String, _
Optional ByVal strHelpPage As String)

Const HH_DISPLAY_TOPIC As Long = &H0

On Error Resume Next
HtmlHelpTopic 0&, strHelpFile, HH_DISPLAY_TOPIC, strHelpPage

End Sub


This works all fine.

The problem is when the help file is loaded, the userform gets closed

and
then Excel gets closed.
Excel then crashes.
So I have to make sure that the help file gets closed before Excel

closes.
Perhaps I need an API function here, but I can't figure it out.
Thanks for any advice.



Regards

Stephen Bullen
Microsoft MVP - Excel
www.BMSLtd.co.uk




All times are GMT +1. The time now is 08:13 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com