![]() |
Hilfedatei temporär erstellen und wieder löschen
Hallo,
während meiner Programminitialisierung erstelle ich eine relativ kleine Hilfedatei im temporären Verzeichnis (Umgebungsvariable TEMP) und weise den Pfad zu Application.Helpfile zu. Das funktioniert soweit ganz gut. Kurz vor dem Programmende lösche ich diese Datei wieder mittels DeleteFile, das funktioniert auch. Allerdings funktioniert es nicht, wenn ich die Hilfedatei mindestens einmal in der Applikation angezeigt habe, also der Anwender min. einmal F1 gedrückt hat. Ich vermute, die Applikation öffnet die Datei dann und schließt sie irgendwann zum Ende, so dass mein Löschvorgang auf die Datei nicht wirken kann. Was kann man da tun? |
AW: Hilfedatei temporär erstellen und wieder löschen
Wahrscheinlich mußt Du die Hilfedatei mit Application.HelpCommand(HELP_QUIT, 0) vor dem löschen schließen.
|
AW: Hilfedatei temporär erstellen und wieder löschen
Die Hilfe, wenn sie denn offen ist, wird durch den Befehl geschlossen. Der anschließende Löschvorgang scheitert aber trotzdem...
|
AW: Hilfedatei temporär erstellen und wieder löschen
Zitat:
Wie erstellst du denn die Datei? Wenn man dafür FILE_ATTRIBUTE_TEMPORARY ( ![]() In wie weit FILE_FLAG_DELETE_ON_CLOSE helfen könnte, kann ich jetzt nicht sagen. Alternativ gäbe es auch andere Hilfesysteme, als diese HLP-Dateien. Warum erstellst du diese Datei eigentlich erst zur Laufzeit? |
AW: Hilfedatei temporär erstellen und wieder löschen
Ich erstelle die Datei zur Laufzeit, weil ich sie dabei haben möchte, dem Kunden aber keine zusätzliche Datei mitgeben möchte.
Die Datei liegt in einem internen Array als Ressource vor und wird mittels Rewrite und Blickwrite erstellt. Vielleicht sollte ich zu Createfile umschwenken... |
AW: Hilfedatei temporär erstellen und wieder löschen
Du kannst ja einfach mal probieren, ob sich diese Datei auch direkt aus den Resourcen laden lässt,
![]() |
AW: Hilfedatei temporär erstellen und wieder löschen
Also ich würde die Anwendung in einer Zip-Datei verteilen oder aber die Hilfe-Datei aus der Ressource extrahieren und nicht wieder löschen. Also nur extrahierten, wenn sie nicht gefunden wird. Alles andere ist irgendwie - komisch. :?
|
AW: Hilfedatei temporär erstellen und wieder löschen
Zitat:
Delphi-Quellcode:
Sicher gibt es andere Hilfesysteme, ich habe nun aber alles auf diese CHM-Datei ausgerichtet und dachte, ein einfacher Löschvorgang wäre nicht problematisch. Leider doch...
FHandle:=CreateFile(PChar(Filename),
GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0); |
AW: Hilfedatei temporär erstellen und wieder löschen
Ja, nicht du löschst diese Datai. :zwinker:
Du beendest einfach dein Programm und wenn alle Programme, auch das WinHelp, die Datei freigegeben haben, dann räumt Windows auf. :zwinker: Also nicht vergessen dein FileHandle offen zu lassen, bis zum Programmende. (da WinHelp die Datei ja anfangs noch nicht offen hat) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:34 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