Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Erkennen ob Hilfedatei geöffnetist (https://www.delphipraxis.net/194831-erkennen-ob-hilfedatei-geoeffnetist.html)

Delphi.Narium 11. Jan 2018 17:34

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: https://theroadtodelphi.com/2011/07/...-using-delphi/

mensch72 11. Jan 2018 17:35

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;)

Walter Landwehr 11. Jan 2018 17:47

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.

Delphi.Narium 11. Jan 2018 18:01

AW: Erkennen ob Hilfedatei geöffnetist
 
Eventuell ein Lösungsansatz: https://stackoverflow.com/questions/...rom-my-program
Bei den Schweizern: http://www.swissdelphicenter.ch/de/showcode.php?id=104

Luckie 11. Jan 2018 18:03

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.

Delphi.Narium 11. Jan 2018 18:18

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.

hoika 11. Jan 2018 18:27

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;

hoika 12. Jan 2018 10:05

AW: Erkennen ob Hilfedatei geöffnetist
 
Hallo,
reicht mein Code aus?

himitsu 12. Jan 2018 11:33

AW: Erkennen ob Hilfedatei geöffnetist
 
Zitat:

Zitat von hoika (Beitrag 1390832)
(das Free habe ich weggelassen).

Wieso?

"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.

hoika 12. Jan 2018 11:56

AW: Erkennen ob Hilfedatei geöffnetist
 
Hallo,
ja, im Editor, aber nicht bei der Windows-Hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr.
Seite 2 von 3     12 3      

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