AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein C++ CHM-Hilfe meines Programms ist 'nicht erreichbar'.

CHM-Hilfe meines Programms ist 'nicht erreichbar'.

Ein Thema von Michaell · begonnen am 1. Aug 2017 · letzter Beitrag vom 12. Mär 2018
Antwort Antwort
Michaell

Registriert seit: 17. Aug 2015
Ort: Bayern
47 Beiträge
 
Turbo C++
 
#1

CHM-Hilfe meines Programms ist 'nicht erreichbar'.

  Alt 1. Aug 2017, 15:04
Hallo,

ich öffne via
Code:
Application->HelpContext(<HelpId>);
an einigen 'kritischen' Stellen die CHM-Hilfe meines C++ Programmes damit der Anwender weiß was zu tun ist. Das funktioniert, allerdings ist das Hilfefenster dann meist durch nachfolgende Error Messages blockiert (nicht erreichbar). Oftmals muß mein Programm dann auch geschlossen werden. Ist dem so, dann wird auch die Hilfe automatisch geschlossen. Wie kann ich das automatische schließen bzw. die Blockade der Hilfe verhindern? Danke für Eure Hilfe!

Grüße!

Michael

P.S. Das Gegenteil von dem was ich Suche (bezüglich nicht schließen) ist in Delphi wohl so zu kodieren:
Code:
procedure TForm1.FormDestroy(Sender: TObject);
begin
   Application.HelpCommand(HELP_QUIT, 0);
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.129 Beiträge
 
Delphi 12 Athens
 
#2

AW: CHM-Hilfe meines Programms ist 'nicht erreichbar'.

  Alt 1. Aug 2017, 15:18
Wenn/da das Hilfe-Fenster im Prozess deiner Anwendung läuft, ist es auch weg, wenn der Prozess erschwindet.
Abhilfe bringt da nur ein externer HelpViewer, also eigenständige Anwendung.

Wir nutzen eine HTML-Hilfe, die entweder in einem programminternen Fenster mit TWebBrowser oder in einem externen Browser (IE/FF/...) angezeigt werden kann.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Michaell

Registriert seit: 17. Aug 2015
Ort: Bayern
47 Beiträge
 
Turbo C++
 
#3

AW: CHM-Hilfe meines Programms ist 'nicht erreichbar'.

  Alt 3. Aug 2017, 11:40
Danke himitsu; daß es dafür keine Möglichkeit mit meiner *.chm Datei gibt ist sehr Schade. (Mit der alten *.hlp Datei hat das ohne Probleme funktioniert.)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.198 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: CHM-Hilfe meines Programms ist 'nicht erreichbar'.

  Alt 3. Aug 2017, 14:14
Danke himitsu; daß es dafür keine Möglichkeit mit meiner *.chm Datei gibt ist sehr Schade. (Mit der alten *.hlp Datei hat das ohne Probleme funktioniert.)
CHM wurde von MS vor Jahren als "Wollmilcheierlegendesau" konzipiert.
Und dieses Konzept wurde von MS auch viele Einfallstore für Viren und Würmer mit eingebaut.
Deshalb musste MS über die Jahre hinweg immer wieder Funktionen abschalten/Einschränkungen einbauen damit Windows nicht zu schnell gekapert wurde.
Durch diese Hotfixes wird auch die normale Verwendung erschwert.
Mein Tipp ist auch sowas nicht mit CHM als Hilfeformat machen sondern bleiben lassen oder auf alternatves (reines HTML-)Format wechseln.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.129 Beiträge
 
Delphi 12 Athens
 
#5

AW: CHM-Hilfe meines Programms ist 'nicht erreichbar'.

  Alt 3. Aug 2017, 17:07
HTML hat auch Probleme, denn Microsoft hat das Intranet standardmäßig als "unsicher" eingestuft.

HTML-Dateien im Intranet (auf einer Netzwerkfreigabe) ist im IE teilweise gesperrt, vorallem JS und teilweise CSS.
An der Sicherheit des Windows (Internet Explorer) rumspielen geht bei einigen Kunden nicht so leicht.

Darum haben wir dafür einen eigenen Webserver (TidHTTPServer), welcher die Hilfedateien raus gibt. (für Windows ist ein HTTP-Server lokal oder im Web als "sicherer" eingestuft)
Diesen Web-Server kann man lokal im Programm haben oder aber auch auf einem anderen PC, als eigener Server, bzw. in der eigenen Serveranwendung (bei uns neben dem DataSnap).
Unsere Hilfe liegt als Dateien (HTML, JS, CSS und JPG/PNG/...) in einem Unterverzeichnis des Programms und der HTTP-Server reicht bei Anfrage diese Dateien durch.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.

Geändert von himitsu ( 3. Aug 2017 um 17:11 Uhr)
  Mit Zitat antworten Zitat
Michaell

Registriert seit: 17. Aug 2015
Ort: Bayern
47 Beiträge
 
Turbo C++
 
#6

AW: CHM-Hilfe meines Programms ist 'nicht erreichbar'.

  Alt 12. Mär 2018, 12:29
Ich habe nun doch noch eine Lösung gefunden:
Code:
// *************************************************************************************************
// parameter 'helpFileChapter':
//    Do a right mouse click on the displayed CHM file and select the item 'Properties'.
//    Behind 'Address:' there is for example this displayed:
//       mk:@MSITStore:D:\Repositories\...\Help.chm::/Introduction.htm
//    at the end of the address it the required *.htm file information.
// *************************************************************************************************
void CCommand::Exe1ShowDedicatedHelp(char helpFileChapter[200])
{
   char helpFilePath[MAXPATHLENGTH], commandOption[MAXPATHLENGTH * 2];

   // build the help file path
   sprintf(helpFilePath, "%s%sHelp.chm", STARTDIR, "Help\\");
   // build the 'hh.exe' command option
   sprintf (commandOption, " %s::/%s", helpFilePath, helpFileChapter);
   // call the help with a dedicated help file chapter
   do_spawnvp(P_NOWAIT, "hh.exe", commandOption);
}
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: CHM-Hilfe meines Programms ist 'nicht erreichbar'.

  Alt 12. Mär 2018, 16:58
Ich glaube eine Abfrage ob HH.exe prozess bereits läuft wäre gut, da du es ja beim beenden nicht schließen willst. (Falls dein Programm das automatisch beim starten lädt meine ich)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Michaell

Registriert seit: 17. Aug 2015
Ort: Bayern
47 Beiträge
 
Turbo C++
 
#8

AW: CHM-Hilfe meines Programms ist 'nicht erreichbar'.

  Alt 12. Mär 2018, 17:18
Ich glaube eine Abfrage ob HH.exe prozess bereits läuft wäre gut, da du es ja beim beenden nicht schließen willst. (Falls dein Programm das automatisch beim starten lädt meine ich)
Das ist nicht nötig: Läuft seit Monaten wie es soll. Wenn hh.exe schon ausgeführt werden sollte dann wird einfach eine zweite Instanz geöffnet. Das ist für mich i.O. Der Anwender macht die dann schon irgend wann zu ...

Geändert von Michaell (12. Mär 2018 um 17:25 Uhr) Grund: Korrektur
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz