![]() |
AW: Erkennen ob Hilfedatei geöffnetist
Ausgehend davon, dass die Hilfedatei nur von Deinem Programm geöffnet wird (und nicht übern Explorer ...) könnte Dir das Ereignis OnHelp der Komponente TApplicationEvent eventuell weiterhelfen. Hier bekommst Du zumindest mit, wenn die Hilfe aufgerufen werden soll. Das Beenden der Hilfe bekommt man in den Ereignissen der Komponente nicht mit.
Ob überhaupt irgendeine Hilfe geöffnet ist, kann man durch das Suchen des Prozesses hh.exe herausbekommen. Für jede geöffnete Hilfe scheint es eine Instanz dieses Programmes zu geben. Der Aufruf der Hilfe erfolgt in der Regel durch Start der hh.exe mit dem Namen der Hilfedatei als Parameter. Die einem Programm übergebenen Parameter kann man zur Laufzeit abfragen. Über das Durchlaufen der Prozessliste und die Überprüfung der Kommandozeilenparameter der hh.exe-Instanzen müsstest Du daher herausbekommen können, ob Deine Hilfe schon geöffnet ist. Weitere Info eventuell hier: ![]() |
AW: Erkennen ob Hilfedatei geöffnetist
Für ein allgemeines "IsFileNotInUse" mache ich folgendes
- vorab erstmal ein "spezielles&schnelles" IsFileExist(filename) - dann ein Rename(filename,filename+'.tst') - dann ein kleines sleep - dann nochmal "spezielles&schnelles" IsFileExist(filename+'.tst') als "Result" - dann ein Rename(filename+'.tst',filename) - noch ein kleines sleep Das funktioniert bei ausreichenden User-Rechten sowohl lokal als auch im Netzwerk. (Wenn jemand nur Leserechte hat, klappt das so nicht) Per Thread das suchen in Hilfe verhindern klingt lustig... müsste ja ein Systemdienst sein der verhindert, das ich in einer per Explorer direkt geöffneten Hilfedatei was suche;) |
AW: Erkennen ob Hilfedatei geöffnetist
Ja das werde ich morgen mal testen. Ich muss mal sehen, wenn die Hilfe mehrmals aufgerufen wird wie es dann aussieht. Vielen Dank ich glaube damit kann ich was anfangen.
|
AW: Erkennen ob Hilfedatei geöffnetist
Eventuell ein Lösungsansatz:
![]() Bei den Schweizern: ![]() |
AW: Erkennen ob Hilfedatei geöffnetist
Warum kann man in der Hilfe deiner Anwendung nicht suchen, wenn eine Thread deiner Anwendung läuft? Was macht der Thread? Insofern ist die Frage nach dem Grund durchaus berechtigt, denn so ohne weiteres erschließt sich dein Ansinnen nicht.
|
AW: Erkennen ob Hilfedatei geöffnetist
Mir erscheint der Lösungsansatz, der hier verfolgt wird eher wie eine Umgehung eines Problemes und nicht wie der Versuch der Beseitigung des Problemes.
|
AW: Erkennen ob Hilfedatei geöffnetist
Hallo,
also ich benutze den folgende Code dafür (das Free habe ich weggelassen).
Delphi-Quellcode:
var
FS: TFileStream; begin try FS:=TFileStream.Create(sName,fmOpenRead); // nicht offen except // offen end; |
AW: Erkennen ob Hilfedatei geöffnetist
Hallo,
reicht mein Code aus? |
AW: Erkennen ob Hilfedatei geöffnetist
Zitat:
"Hilfedatei geöffnet ist" oder "Hilfe angezeigt wird" :?: Und siehe Editor (Notepad) oder TStringList/TMemo ... da ist die Datei nur während des Ladens kurz geöffnet und danach dann nicht mehr, auch wenn der Text weiterhin angezeigt wird. |
AW: Erkennen ob Hilfedatei geöffnetist
Hallo,
ja, im Editor, aber nicht bei der Windows-Hilfe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 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