Comment savoir "quand" une application, lancée avec ShellExecute, s'est terminée

Résolu
ponpon82 Messages postés 5 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 26 mai 2005 - 25 mai 2005 à 10:05
ponpon82 Messages postés 5 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 26 mai 2005 - 26 mai 2005 à 09:20
Bonjour tout le monde, dans mon application je charge au démarrage un fichier .rtf dans un RichEdit et j'ai créé un bouton "Editer" qui lance avec la commande ShellExecute le fichier dans Wordpad. Je peux alors modifier le fichier avec Wordpad, mais lorsque je ferme Wordpad la version modifiée du fichier n'est pas rechargée dans le RichEdit. J'ai pensé à utiliser un timer qui se lance lorsque je click sur le bouton "Editer" et qui recharge le RichEdit toute les minutes, cette solution n'est pas très élégante mais à défaut d'avoir mieu, ça marche. Le problème c'est que le timer, une fois lancé, ne s'arrête plus. Alors est-il possible de savoir quand Wordpad a été fermé? Est-ce que quelqu'un a une solution plus élégante à me proposer. Je remercie d'avance toute personne susceptible de m'aider.

3 réponses

ponpon82 Messages postés 5 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 26 mai 2005
25 mai 2005 à 12:54
Salut Nico, je te remercie pour ce lien, mais je viens de regarder et ca m'aide pas beaucoup . En tout cas merci quand même.
3
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
26 mai 2005 à 02:43
En fait, ponpon82, cette excellente fonction (que je viens de découvrir grâce à ni69, merci à lui ) lance ton fichier et retourne True quand tu as fermé le programme vers lequel tu as envoyé ton fichier.



Ce qui te manque, sans doute, ça serait un petit code de démonstration afin de voir comment l'utiliser ?



Car si tu n'es pas familier de l'api Windows, tu ne dois pas trop savoir par quel bout la prendre...



function LaunchAndWait(sFile: String; wShowWin: Word): Boolean;



sFile est le FileName de ton fichier rtf,

wShowWin est la manière dont s'ouvrira la fenêtre de l'application vers
laquelle tu envoies ton fichier (voir Windows.pas ou autre
documentation).



Démonstration de son utilisation :



procedure TForm1.Button1Click(Sender: TObject);

begin

if LaunchAndWait('MonFichier.rtf', SW_SHOW) then

// ou SW_MAXIMIZE ou autre...

begin

RichEdit.Clear;

RichEdit.Lines.LoadFromFile('Fichier.rtf');

end;

end;



Ca va mieux comme ça ?



Bonne prog'



japee
3
ponpon82 Messages postés 5 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 26 mai 2005
26 mai 2005 à 09:20
Salut japee, je te remercie beaucoup pour ton aide, ça marche du tonnerre , elle est génial cette fonction. Désolé ni69, mais j'avais pas compris comment l'utiliser au début c'est pour ça que j'ai dit que ça m'aideré pas beaucoup ton post. En tout cas 1000 fois merci à tout les deux .
3
Rejoignez-nous