![]() |
Hilfedateien lokal OK, übers Netz Fehlermeldung
Hallo,
ich bin gerade dabei, die Hilfe (*.chm) in mein Programm einzubauen. Dazu habe ich verschieden Tutorials schon genutzt und erste Erfolge sind auch schon da. Wenn ich das Programm lokal starte und die Hilfe anzeigen lassen will, ist das OK, wenn ich das Programm aber übers Netz starte, kommt dann nur der Hilfe Dialog, aber meine Hilfe wird nicht angezeigt. Macht da Windows mit Sicherheit Probleme oder was kann das sein? Nachfolgend der Start der Hilfe.
Delphi-Quellcode:
procedure TfMain.ViewerHilfe1Click(Sender: TObject);
var h: HWND; P: PChar; begin h := GetDesktopWindow; P:=PChar(chmFile); _HHwinHwnd := HtmlHelp(h, P, HH_DISPLAY_TOPIC, 0); end; |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Sicherheit dürfte das Stichwort sein. Soweit ich mich erinnere, hat Microsoft da den Zugriff auf CHM-Dateien über Netzwerk bzw. Internet eingeschränkt, weil dort mehrfach Probleme (Sicherheitslücken) aufgetreten sind.
Weiß nicht, ob man diese Restriktion noch lockern kann... Viele Grüße |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Leg einmal diesen Schlüssel in der Registry an (falls er noch nicht existiert):
Code:
Unter diesem Schlüssel legst Du dann einen DWORD-Wert mit Namen MaxAllowedZone an und vergibst den Wert 2. Geht es jetzt?
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions
|
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Dann wäre das ja ein "Super Rückschritt". Bei einem älteren Programm hatte ich noch die alten Helpdateien genutzt, nun wollte ich alles "neu" machen und dann kommt es zu dem Problem.
Hat jemand eine Idee, wie man das doch hinbekommt? Ansonsten bleibt ja nur wieder der Umstieg auf die alten Heldateien. Ich hatte gerade angefangen, mich in die "chm" Dateien einzuarbeiten. |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Siehe #3 (hat sich wohl überschnitten).
|
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Zitat:
Oder brauche ich da wieder Rechte dazu? Wie soll man allein auf solche Antworten kommen? Das steht doch bestimmt nirgends extra beschrieben? |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Du wirst dafür Administratorrechte brauchen, da du in den HKLM-Zweig schreibst.
Bernhard |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Du kannst den Schlüssel doch vom Setup Deines Programms erzeugen lassen. Das muss allerdings auf jedem Client im Netz, der auf die Hilfe zugreifen soll, geschehen.
|
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Zitat:
Danke nochmals, werde das gleich in die Setup Routine einbauen. |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Geht nur um das Grundprinzip: Ist es eine gute Idee die Admineinschränkung zu umgehen ? Leuten wie mir ist es egal, aber ich finde solche Wertänderungen sollten vermerkt werden, wenn der Benutzer einem schon vertraut das Programm überhaupt auszuführen. Geht aber wirklich nur um das Grundprinzip, habe halt die Erfahrung dass durch solche Registryeinträge oftmals weitaus mehr als nur das Gewünschte verändert wird. EDIT: Wobei gut, der Registrywert stinkt nach ausschließlich HTML-Hilfe, ich nehme es wieder zurück.
|
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Zitat:
Oder wie sieht es bei euch aus? Wenn ihr neue Programm schreibt, nutzt ihr dann noch HLP Dateien oder nur noch CHM Dateien? |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Du könntest aber auch die Hilfedatei in ein temporäres Verzeichnis kopieren lassen und von dort anzeigen. Das müsste eigentlich gehen. Dann kannst du bei CHM-Dateien bleiben
Bernhard |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Zitat:
Ich werde mir das dieser Tage mal durch den Kopf gehen lassen und dann weiter testen. |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Zitat:
Es gibt auch die Möglichkeit gezielt die eigenen Hilfedateien per Registry als sicher zu markieren. Mittlerweile machen wir es aber so das wir die Datei ins %AppData%-Verzeichnis kopieren und von dort starten. Beachte aber das diese nicht mit Shell-Kopierfunktionen geschieht da das Kopieren mittels Windows Explorer einen vermerk auf die unsichere Quelle der Datei hinterlegt so das die Datei auch lokal kopiert nicht geht. |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Zitat:
Offensichtlich muss man hier richtige "Klimmzüge" machen, damit ein User eine Hilfe bekommt. Ist denn unter Windows gar nichts mehr sicher? |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Zitat:
Zitat:
Das Problem ist doch oft das MS immer versucht alles mögliche in etwas zu integrieren wofür es nicht vorgehen war ohne sich gleich vernünftig Gedanken zu machen welche Sicherheitsproblem es geben könnte. Das CHM-Format ist ein Beispiel dafür. Alles mögliche wurde realisiert bis man darauf gekommen ist das dadurch alle mögliche Schadsoftware ebenfalls auf den Rechner kommt. |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Wenn das aus dem temporären Verzeichnis heraus geht, dann mach es so, Registry-Hacks halte ich für sehr fragwürdig. Außerdem lasse ich alle Zugriffe auf die Registry überwachen, ich denke viele andere tun das auch, und im Zweifelsfall - gerade bei Installationen - verweigere ich die Registryänderung. Man sollte immer das Minimum nutzen, viel zu viele Dinge laufen über die Registry, deshalb ist sie auch so verschlackt. Hängt alles davon ab was Dein Programm genau macht und wo es installiert werden soll, aber man sollte sich lieber einmal einen Weg suchen der überall laufen sollte und nicht immer wieder nachbessern.
|
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Wenn es sich um eine kleine *.chm handelt, kann man sie ruhig kopieren. Bei 20 MB Dateigröße würde ich mir das allerdings überlegen.
[edit] Hier ist der entsprechende Artikel zum Problem: ![]() |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Zitat:
1, Fortschritsdialog mit "Hilfe wird vorbereitet" (kennt man ja noch gut aus *.hlp-Zeiten) 2, Kopieren in Thread bei Anwendungsstart Zusätzlich noch Check ob kopieren nötig oder aktuelle lokal Datei vorliegt. |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Solange kein "super Tool" auf dem Rechner läuft, das regelmäßig das Temp-Verzeichnis leert, finde ich das auch noch hinnehmbar, da ja nur einmal kopiert wird. Allerdings hat man dann auch nur die Hilfedatei, die beim Kopieren aktuell war und bekommt von neuen Funktionen dann u.U. nichts mit. Aber wer (außer uns) aktualisiert schon ständig seine Hilfe?
|
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Das Kopieren wenn nötig beinhaltet meiner Meinung auch zu schauen, ob die vorhandene Hilfe überhaupt noch aktuell ist. Dies kann man z.B. per MD5-Checksumme machen. So bekommt man auch immer die neuste Hilfe auf den Rechner kopiert.
Ich finde, ein Programm sollte nach Benutzung alle temporären Dateien selbst löschen. So läuft das TEMP-Verzeichnis auch nicht über oder füllt sich langsam mit immer mehr Daten an. Demnach müsste das Programm beim Schließen auch die Hilfedatei löschen. So braucht man die Hilfe auch nur dann zu prüfen, wenn sie wirklich gebraucht wird und hat die Festplattenkapazitäten für anderes frei. Zu dem "super Tool": Unter Linux hast du beim nächsten Hochfahren deines Rechners ein absolut sauberes /tmp-Verzeichnis. So sollte das Windows von Haus aus auch machen. Temporär ist nun mal temporär und nicht permanent. Bernhard |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
IMO sollte Windows Vieles machen, was es nicht tut ;)
|
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Zitat:
Oder gibt es eine andere Idee, die Hilfe vom Netzwerk zu laden, ohne Shell zu benutzen, dabei aber das Datum OK ist? |
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
Einfach den ADS löschen
|
AW: Hilfedateien lokal OK, übers Netz Fehlermeldung
CopyFile() hinterlässt auch keine Spuren, da du ja damit die Shell umgehst.
Bernhard |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz