Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Feststellen ob Word beendet wurde (https://www.delphipraxis.net/64125-feststellen-ob-word-beendet-wurde.html)

Alloc 27. Feb 2006 20:55


Feststellen ob Word beendet wurde
 
Hio Alle,

habe hier ein Programm, das per Ole eine Word-Instanz starten soll, dort eine Datei laden und dann solange warten (eingefroren werden) soll, bis der Benutzer die Word-Instanz wieder beendet hat. Eigentlich dachte ich an das Event "Quit" von Word's Ole-Schnittstelle, konnte allerdings nicht herausfinden, wie man mit Delphi und Ole-Events arbeitet. Andere Möglichkeit wäre wohl in regelmäßigen Intervallen die Ole-Verbindung abzufragen, habe aber keine Ahnung wie das gehen könnte (IF OleWord=0 ... geht da schonmal nicht ^^)...

mfG
Chris

/Edit:
Mir fällt grad auf, dass es nicht mal unbedingt eine OLE-Verbindung sien müsste. Einfach die Datei mit Word (bzw irgendeine Datei mit dem jeweiligen Programm) öffnen und dann warten bis das Programm wieder beendet wurde ... Irgendwelche Ideen? :D
ZB liefert ShellExecute ja ein Handle des neuen Programms zurück ... wäre nur noch die Frage, wie ich eine Anfrage darauf mache, ob dieser Handle noch offen ist ...

Alloc 28. Feb 2006 11:41

Re: Feststellen ob Word beendet wurde
 
Hat keiner ne Idee/Hinweis für mich? Konnte leider auch in der WinAPI nix finden was danach ausschaut, dass man ein InstanceHandle auf Existenz oder so abfragen könnte...

SirThornberry 28. Feb 2006 11:56

Re: Feststellen ob Word beendet wurde
 
wenn du den Prozess mit CreateProcess starten würdest (also Word) gäbe es die Möglichkeit auf die Beendigung mit WaitForSingleObject (oder so ähnlich) zu warten.

HendrikM 28. Feb 2006 12:33

Re: Feststellen ob Word beendet wurde
 
Wenn Du WORD über die COM - Schnittstelle aufmachst, kann man das Ereignis OnBeforeClose abfangen.
Ist eh besser als OLE oder per CreateProcess
Hendrik

stonimahoni 28. Feb 2006 12:37

Re: Feststellen ob Word beendet wurde
 
HI...


wäre das hier was für dich ? :

Delphi-Quellcode:
if IsProgActive('Word.Application') then
   begin
      ShowMessage('Word läuft - bitte schliessen !!');
   end

MFG

Carsten

Alloc 28. Feb 2006 12:44

Re: Feststellen ob Word beendet wurde
 
Danke euch allen =)
Bin dank des WaitForSingleObject-Tipps auf die Lösung gestoßen (siehe hier)). Dass ist wohl genau das was ich brauche (kann nämlich dank ShellExecute auch andere Dateitypen als Word öffnen und darauf warten :D ).

Grüße,
Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:28 Uhr.

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