Solved

Compile HTML to CHM help file

Posted on 2010-08-19
23
1,209 Views
Last Modified: 2013-11-27
Hello,

I want to compile HTML code and image resources to CHM help file.
0
Comment
Question by:Mohamed Abowarda
  • 7
  • 5
  • 3
  • +4
23 Comments
 
LVL 7

Expert Comment

by:deisrobinson
ID: 33478174
0
 
LVL 16

Expert Comment

by:kris_per
ID: 33478846
0
 
LVL 12

Author Comment

by:Mohamed Abowarda
ID: 33478964
@deisrobinson, @kris_per: I need to do this myself using C# or VB.NET without using another software.
0
 
LVL 16

Accepted Solution

by:
kris_per earned 125 total points
ID: 33480078

Microsoft HTML Workshop comes with a command to which you can pass the html files and configuration files and it will create chm file. Check out this link => http://msdn.microsoft.com/en-us/library/ms524267(v=VS.85).aspx.

Then, in c# you need to create the project file (.hhp file) and content file (hhc file) and pass these to html workshop command (hhc) to create chm file.
0
 
LVL 12

Author Comment

by:Mohamed Abowarda
ID: 33708575
@kris_per: I need to compile the HTML and Images using C# or VB.NET code.
0
 
LVL 38

Assisted Solution

by:PaulHews
PaulHews earned 125 total points
ID: 33812316
Here is information on the CHM format.
http://www.russotto.net/chm/chmformat.html

I don't believe you will find sample code anywhere to create this format, and it looks pretty complicated, including using a custom version of the LZX algorithm for compression.  You would either have to write it yourself, hire someone to write it, or use HTML help compiler, which is free from Microsoft.  In fact all you really need is the hhc.exe command line tool and hha.dll in the same folder (which is the same procedure I use in the EE profile help compiler http://www.experts-exchange.com/Community_Support/Input/Q_22862698.html ).  MS Help Workshop contains instructions on the command line usage.
0
 
LVL 45

Expert Comment

by:aikimark
ID: 33812661
@Medo3337

Please explain the context of your question, especially why you have rejected the use of the HTML Help utility available (FOR FREE) from Microsoft.
0
 
LVL 12

Author Comment

by:Mohamed Abowarda
ID: 33833512
@aikimark: I want to compile the help file using C# or VB.NET application.

I have found API to do so but it's ".lib" file for C++ usage:
http://msdn.microsoft.com/en-us/library/ms669985(VS.85).aspx
0
 
LVL 45

Expert Comment

by:aikimark
ID: 33833586
@Medo3337

You can launch the utility from a C# or VB.Net application.
0
 
LVL 38

Expert Comment

by:PaulHews
ID: 33834254
htmlhelp.lib is *not* for compiling chm files.  It's for displaying help from your C++ program.
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 16

Expert Comment

by:kris_per
ID: 33834452
@Medo3337

This HTML Help API you have mentioned is to embed the HTML help control inside another application and to configure how the html help window should be displayed and what page to display in the html help window, etc.

This API is not to create new CHM files...

As I mentioned above, you can call the HHC command from within a c# program and pass the .hhp(which is an xml file) and .html files to this command to create .chm file.
0
 
LVL 7

Assisted Solution

by:help-info
help-info earned 125 total points
ID: 33912060
BTW .hhp is not XML - more good old .ini format ;-)

As posted above (kris_per) calling the command line from within a C# programm is the way to go ..
See also:
http://www.help-info.de/en/Help_Info_HTMLHelp/hh_command.htm#Compile

Best regards
Ulrich Kulle
Microsoft Help MVP 2007-2009
0
 
LVL 12

Author Comment

by:Mohamed Abowarda
ID: 34029168
@help-info: I don't want to use command lines to do this, I would prefer C# or VB.NET code to compile the resources to .chm file.
0
 
LVL 45

Expert Comment

by:aikimark
ID: 34030696
In your opinion, would a Shell() function be the same as a command line?
0
 
LVL 12

Author Comment

by:Mohamed Abowarda
ID: 34030707
@aikimark: Using Shell to access what application?

I don't want the user to see black screen while processing.
0
 
LVL 45

Assisted Solution

by:aikimark
aikimark earned 125 total points
ID: 34030715
the compilation window can be hidden.
0
 
LVL 12

Author Comment

by:Mohamed Abowarda
ID: 34133006
@aikimark: Is that the only way that used in CHM creator softwares?
0
 
LVL 45

Expert Comment

by:aikimark
ID: 34133398
If you want to do it through object manipulation, I think you're out of luck.  I don't think there is an ActiveX object that wraps this.
0
 
LVL 5

Expert Comment

by:knowlton
ID: 36107989
I've requested that this question be deleted for the following reason:

This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.
0
 
LVL 38

Expert Comment

by:PaulHews
ID: 36107990
Humbly submit that the question was indeed fully answered, even if the question asker did not like the solution:

http:#a33478846
http:#a33812316
http:#a33912060
http:#a34030715
0
 
LVL 12

Author Closing Comment

by:Mohamed Abowarda
ID: 36108440
In this question, I wanted a way to do that without using other console applications, but since it's alternative solution, I have accepted them.

Thanks everyone,
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
A short film showing how OnPage and Connectwise integration works.
Concerto provides fully managed cloud services and the expertise to provide an easy and reliable route to the cloud. Our best-in-class solutions help you address the toughest IT challenges, find new efficiencies and deliver the best application expe…

948 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now