Wiki Home

VFP Help

Namespace: WIN_COM_API
A topic to discuss HTMLHelp and Win HelpOffsite link to
as they pertain to the VFP help files.
See HTMLHelp for authoring help systems for your own applications.
See also What to do if VFP Help Stops Responding
Does anyone know tips to speed up the loading of this pig?
One thing to do is set VFP to directly use foxhelp.chm (menu Tools, Options, File Locations, Help file) instead of msdnvs98.col. On a P2-350 class machine VFP help will load in 4 seconds. I use a start menu shortcut to get to the full VS/MSDN help file when I need it. -- df
The Service Pack 3 release and InternetExplorer5 release have caused the HTMLHelp engine to no longer be a drop target for files in the right hand window. Files can still be added to the Favorites tab by using the Go, URL... menu item. Paste the file (or URL) you want to add into the dialog, change the name to something meaningful in the textbox, then click the Add button at the bottom of the Help window. You can also rightclick the item in the list to rename it.

You can drop all sorts of files into the help system, .DOC, .XLS, .VSD, you can also add and have this place available from the help window.

Note: You can not drop another .CHM file into the system, I've also tried hacking the .COL file to try to add additional content to the list but I was unable to get it to work. If you know of a way please tell us how, I'd love to be able to get the Hackers Guide into the native help.
How to get HTMLHelp to stay on top like we used to be able to do with Win HelpOffsite link to
. You can run this program to toggle the window state.

* HelpOnTop.prg 05-Jan-99

* Set the VFP6 help window to always ontop

* Usage: HelpOnTop( lOnTop )
* lOnTop - .t. set it to top
*          .f. set it to not on top

lparameter plOnTop

if ( ( type( "plOnTop" ) != "L" ) or ( pcount() = 0 ) )
   plOnTop = .t.

local lnHwnd


declare integer FindWindow in win32api ;
  string lpClassName, ; && pointer to class name
  string lpWindowName   && pointer to window name

declare integer SetWindowPos IN win32api ;
  integer hWnd,            ; && handle to window
  integer hWndInsertAfter, ; && placement-order handle
  integer X,               ; && horizontal position
  integer Y,               ; && vertical position  
  integer cx,              ; && width
  integer cy,              ; && height
  integer uFlags             && window-positioning flags
lnHwnd = FindWindow( .null., "VisualFoxPro 6.0" )

if ( lnHwnd > 0 )
   SetWindowPos( lnHwnd, iif( plOnTop, HWND_TOPMOST, HWND_NOTOPMOST ), 0,0,0,0, SWP_NOSIZE + SWP_NOMOVE )

Something I noticed recently (and yes it is being a bit nit picky but I reserve the right to do that):
If you bring up the VFP 8.0 help from VFP 8.0 (using F1 or the Help menu) and then close the help, it stays in memory (as foxhhelp8.exe). The amount of memory it is using goes down a little at that point but not much relative to how much it takes when you have it showing (from 13-14 MB when showing down to 10-11 MB after you "close" it). You have to quit VFP to get help to really be closed too. (at least that does it and you don't have to restart Windows...) When you run it from VFP 8 like that, it shows up in the Task Manager as foxhhelp.exe.

If you just double click dv_foxhelp.chm in the VFP 8 folder it shows up as hh.exe (the HTML help viewer) in Task Manager. And when you open it by opening the CHM file like this and then close it, it does leave memory right away (including if VFP 8 is running at the time).

I would guess it has something to do with context sensitive help but context sensitive help works when you first run VFP8 and neither foxhhelp8.exe or hh.exe is in memory so why does it have to stay in memory? I suppose it's not a lot of memory compared to what most of us probably have in our development machines but I wonder if the same happens if you create a help file and use context sensitive help from within a VFP application? Does it eat up memory on your end user's workstation like this too? We don't use HTML help from our apps: anyone noticed this?

For comparison, I ran Office help from MS Excel and it shows up in Task Manager as msohelp.exe (about 11 MB) and leaves memory right after you close it (don't have to close Excel). If you just double click the MSOhelp.chm file by itself in the Office folder, it shows up as hh.exe in Task Manager (like VFP 8 help did on it's own) (about 8 MB) and also leaves memory right after you close it.

Anyone know of a way to keep it from staying in memory? I've got my Tools->Options 'File Locations' pointing at dv_foxhhelp.chm: the file that if I run it on my own does not stay in memory... (I think that is the default in VFP8 too)

Andy Needham

Contributors: David Frankenbach
Category VFP Ide Category Windows API Category Code Samples Category Help
( Topic last updated: 2003.12.18 01:26:50 PM )