Getting Help from CHM

If you're a developer on a Windows machine (which my stats would seem to say is likely!) then you may be interested to know that most languages offer compiled help files that you can download to your machine.

Almost every application for Windows comes with a help file. Do a search on your drive for *.CHM and you'll uncover a whole collection of these help files on your system.

I prefer the CHM files over their web-based alternatives because they are fast, searchable, and available offline. They offer content in a handy tree-based table of contents or as an alphabetical index (really nice if you know the name of that function but need to know the parameter order). Also, they tend to be cross-referenced allowing you to burrow into related topics.

So, here's a quick list of the ones I use:

  1. PHP, also apparently available in an extended format that I have not used personally.
  2. MySQL; look for the CHM column in the table of documentation.
  3. CakePHP; this one is auto-generated and tends to be pretty good but some of the formatting can make it difficult to follow along. Grab both the API and Manual.
  4. Windows Script; it does Microsoft Genuine validation (so annoying) and having both VBScript and JScript combined in one file is frustrating. The version before this had VBScript and JScript in separate files, making it less confusing to look up a method or object description but is no longer available.
  5. If you do MS SQL Server development and have the client tools installed, do a search on your hard drive for tsqlref.chm and mdacxml.chm. The Transact SQL one is the same (I think) as the one that you'd get if you hit F1 from the Query Analyzer. The MDAC one has a bunch of stuff but best of all includes MSXML and ADO API information.

Microsoft Office applications also have developer CHM's that you can install, if you ever find yourself doing VBA development.

Got any good documentation tips?

Published January 08, 2007
Categorized as Other
Short URL:


14 Comments · RSS feed
Ben Hirsch said on January 08, 2007

Do you use a reader to view the files or just crack open Windows help?

Jonathan Snook said on January 08, 2007

The files should already be associated with Windows Help and open up when you double-click on them.

Frank Taillandier said on January 09, 2007

Of course you can read .chm files on Mac OS X thanks to Chmox

Andy Kant said on January 09, 2007

MS Help 2 (screenshot, which is used for the MSDN/Visual Studio reference library) has a more developer-friendly GUI and is better organized than CHM's. You can create custom references for it but I'm not sure how easy it is.

Thanks for the collection of CHM's. I never thought about using one for PHP because I'm so used to just going to whenever I need help on a method (plus the comments are very useful).

Bramus! said on January 09, 2007

Must say that I've always been using the online versions of the documentation ( or starting at Google and using the inurl: param).

However, offline versions are available, yet mostly in .pdf. Maybe I ought to switch to the CHM version because of their advance search capabilities ... thanks for the links!

Anthony said on January 09, 2007

I like my online versions too (mainly for the benefit of discussion and recency), but I always keep HTML or PDF manuals on each machine I use.

CheatSheets are my favourite form though - the music video of documentation! 80% of the time they cover what I need.

Luke L said on January 09, 2007

The original versions of PHP Developer could actually load the PHP .cmh file if you gave it to the program, so it would display the relevant page simply by ones selecting a function! I've yet to see integration like this anywhere else.

Jonathan Snook said on January 09, 2007

Luke: at the bottom of the extended CHM I've linked to above, they have instructions on how to integrate the help with a number of editors to do just what you describe. Very cool!

Kjell Bublitz said on January 09, 2007

For Javascript 1.50 as CHM check out this project:

Jonathan Snook said on January 09, 2007

Kjell: Oooh, good link! Added to my collection. :)

Matthias Willerich said on January 11, 2007

I use chm for php and mysql all the time. One thing about the php chm is that, of course, all the comments aren't there, and they are sometimes more helpful than just a function definition, and the copy for experimental functions like everything xml-related is often less than a sentence.

Kjell Bublitz said on January 20, 2007

I know this is old by now, but i have another cool link for you :)

I snatched myself some spartime and created this:
Prototype 1.5.0 Api Docs.


Prescription Drugs said on March 17, 2007

Upps I did it again...

john said on November 14, 2007

is it possible to read a .chm file using php - i.e. so i can have an online version?

Sorry, comments are closed for this post. If you have any further questions or comments, feel free to send them to me directly.