[win32/C++] Hoe naar pagina in helpfile springen?

Pagina: 1
Acties:

  • hneel
  • Registratie: Maart 2001
  • Laatst online: 15:11

hneel

denkt er het zijne van

Topicstarter
Ik heb een applicatie geschreven in Borland C++ Builder 5 met een helpfile. (Ik denk dat het type compiler hier niet zo veel toe doet). De helpfile is een HTML-helpfile met de extensie .chm.

Eerst had ik een "gewone" .HLP file, maar omdat er nogal veel plaatjes in zitten werd die bijna 30MB groot... Die HTML variant is een stuk kleiner.

Maar goed, waar het om gaat: Ik wil vanuit mijn applicatie naar een bepaalde pagina in die helpfile kunnen springen. Ik roep die helpfile nu alsvolgt aan:

C++:
1
2
3
4
5
void __fastcall TForm1::MenuHelpHelpClick(TObject *Sender)
{
//  Application->HelpJump("");
  ShellExecute( NULL, NULL, Application->HelpFile.c_str(), "", "", SW_SHOWNORMAL );
}


(De weg-gequote regel was van toen ik nog de .HLP gebruikte. Met een .CHM file geeft dat een foutmelding dat het geen geldig windows help bestand is).

Ik kan met die functie nog parameters mee geven. Kan ik daarmee op een of andere manier mee naar een andere pagina springen?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je SHELL-ed nu gewoon het helpbestand, en ik durf te betwijfelen of je daarmee een bepaalde pagina kan opgeven. Je start het bestand nu dus gewoon alsof je het via "Start->Run" uitvoert. Hoewel het niet geheel onmogelijk zou zijn IMHO, lijkt het me stug dat je hiermee een pagina kan specificeren.

Er zijn toch wel wat API calls voor die helpdingen?

edit: Even 10 sec. gegoogled, en het artikel nog niet gelezen, maar misschien is dit wat:
http://msdn.microsoft.com...nce/functions/winhelp.asp

[ Voor 30% gewijzigd door RobIII op 06-12-2005 14:59 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • hneel
  • Registratie: Maart 2001
  • Laatst online: 15:11

hneel

denkt er het zijne van

Topicstarter
Helaas. Deze is bedoeld voor het oude type helpfiles. Het .chm bestand herkent hij niet.

Verwijderd

Delphi en BCB ondersteunen standaard geen .CHM bestanden.
Je zult op zoek moeten gaan naar wat helper classes/libraries

Ze bestaan wel, maar werken niet allemaal even perfect.

  • hneel
  • Registratie: Maart 2001
  • Laatst online: 15:11

hneel

denkt er het zijne van

Topicstarter
Ik heb de oplossing gevonden. Dus als er nog eens iemand naar zoekt kan die het hier vinden.

C++:
1
ShellExecute( NULL, NULL, "hh.exe", "bla.chm::xx.htm", "", SW_SHOWNORMAL );


De .chm file moet dus uit meerdere html pagina's zijn opgebouwd. Op deze manier spring je er dus naar toe.

[ Voor 255% gewijzigd door hneel op 07-12-2005 10:47 ]