Is it possible to use embedded resource in 'webBrowser'?

Hi experts
I wonder if it is possible to use embedded resource of chm file in 'webBrowser'?

My C# program reads from a chm file ("Help.chm") in my local HD by calling the method
webBrowser.Navigate(url)

Open in new window

.
eg. the url could be:
//"mk:@MSITStore:C:\\Projects\\Tool\\bin\\Debug\\Help.chm::/InfoTab_InfoTab.htm"

But, I would like to use the chm file as an embedded resource. eg. Properties.Resources.Help
And I wonder how I could modify the above.
I'd seen from some Internet article suggesting casting the embedded resource into a string and assign it to webBrowser.DocumentText, but it didn't work for me.

Thanks in advance
dominicwongAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

help-infoCommented:
Form with working webBrowser controlAdding CHM's - example code onlyCopy the CHM file(s) to a subdirectory e.g. /help of your Project and always copy this file(s) to the release folder .

You need to know about the internal CHM web structure e.g. topic garden.htm

Add code:
private const string sHTMLHelpFileName_ShowWithoutAutoSync = "/help/CHM-example.chm";

Open in new window


..
    public static string GetChmUrl(string fileName, string page)
    {
      StringBuilder url = new StringBuilder();
      url.AppendFormat("mk:@MSITStore:{0}::", fileName);
      if (page.IndexOf('/') != 0) url.Append('/');
      url.Append(page);
      return url.ToString();
    }

Open in new window


..
    private void frmMain_Load(object sender, EventArgs e)
    {
      // example: System.Diagnostics.Process.Start(Application.StartupPath + sHTMLHelpFileName_ShowWithoutAutoSync);
      webBrowser1.Navigate(new Uri(GetChmUrl(Application.StartupPath + sHTMLHelpFileName_ShowWithoutAutoSync, "Garden/garden.htm")));
    }

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
help-infoCommented:
Please note you can show a single topic only. CHM files have their own Help Viewer coming with Windows. The CHM Help Viewer of the operating system includes a web browser control the "Content pane".
For calling the Help Viewer use e.g. following code or other solutions

// example: System.Diagnostics.Process.Start(Application.StartupPath + sHTMLHelpFileName_ShowWithoutAutoSync);

Open in new window

0
dominicwongAuthor Commented:
Thanks help-info for your detailed explanation and with all the nice screenshot. I appreciate it.
The issue I have here came from the trouble where anti-virus scanner scans the chm help file whenever my application attempts to read it from an (external) file in my hard drive. (Please see my other question How to workaround slow down in loading chm file into C# .NET program from background security software)

In other words, my application already reads from a chm help, and loads onto a help panel successfully. Now my thought is instead of mining the help information into my application upon program startup (as the experts suggested in the other question), I would like to test if hiding the external chm help file into an internal resource (ie embedded into a dll) might solve the anti-virus scanning issue.
0
dominicwongAuthor Commented:
Sorry. It has been a long time. I didn't realize that this question hadn't been closed.
Thanks for your help
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.