AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Erkennen ob Hilfedatei geöffnetist

Erkennen ob Hilfedatei geöffnetist

Ein Thema von Walter Landwehr · begonnen am 11. Jan 2018 · letzter Beitrag vom 13. Jan 2018
Antwort Antwort
Seite 2 von 3     12 3   
Delphi.Narium

Registriert seit: 27. Nov 2017
161 Beiträge
 
#11

AW: Erkennen ob Hilfedatei geöffnetist

  Alt 11. Jan 2018, 18:34
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/

Geändert von Delphi.Narium (11. Jan 2018 um 19:20 Uhr)
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
649 Beiträge
 
#12

AW: Erkennen ob Hilfedatei geöffnetist

  Alt 11. Jan 2018, 18:35
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
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
245 Beiträge
 
Delphi 10.1 Berlin Professional
 
#13

AW: Erkennen ob Hilfedatei geöffnetist

  Alt 11. Jan 2018, 18:47
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.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
161 Beiträge
 
#14

AW: Erkennen ob Hilfedatei geöffnetist

  Alt 11. Jan 2018, 19:01
Eventuell ein Lösungsansatz: https://stackoverflow.com/questions/...rom-my-program
Bei den Schweizern: http://www.swissdelphicenter.ch/de/showcode.php?id=104
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
36.752 Beiträge
 
Delphi 2006 Professional
 
#15

AW: Erkennen ob Hilfedatei geöffnetist

  Alt 11. Jan 2018, 19:03
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
161 Beiträge
 
#16

AW: Erkennen ob Hilfedatei geöffnetist

  Alt 11. Jan 2018, 19:18
Mir erscheint der Lösungsansatz, der hier verfolgt wird eher wie eine Umgehung eines Problemes und nicht wie der Versuch der Beseitigung des Problemes.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
5.993 Beiträge
 
Delphi XE4 Professional
 
#17

AW: Erkennen ob Hilfedatei geöffnetist

  Alt 11. Jan 2018, 19:27
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;
Heiko
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
5.993 Beiträge
 
Delphi XE4 Professional
 
#18

AW: Erkennen ob Hilfedatei geöffnetist

  Alt 12. Jan 2018, 11:05
Hallo,
reicht mein Code aus?
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
33.618 Beiträge
 
Delphi XE3 Professional
 
#19

AW: Erkennen ob Hilfedatei geöffnetist

  Alt 12. Jan 2018, 12:33
(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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (12. Jan 2018 um 13:28 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
5.993 Beiträge
 
Delphi XE4 Professional
 
#20

AW: Erkennen ob Hilfedatei geöffnetist

  Alt 12. Jan 2018, 12:56
Hallo,
ja, im Editor, aber nicht bei der Windows-Hilfe.
Heiko
  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:

Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2017 by Daniel R. Wolf