Fermer et relancer une application delphi

Résolu
Signaler
Messages postés
6
Date d'inscription
jeudi 11 novembre 2004
Statut
Membre
Dernière intervention
15 octobre 2009
-
Messages postés
6
Date d'inscription
jeudi 11 novembre 2004
Statut
Membre
Dernière intervention
15 octobre 2009
-
Est-il possible de fermer (ça oui) et de relancer une application depuis cette application ?
Reformulation : j'appuie sur un bouton, mon appli se ferme et s'ouvre de nouveau.
Si oui comment?
Cordialement.

3 réponses

Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
Salut,
une autre solution plus simpliste celle la mais tout dépend le type d'application que tu désires redémarrer

procedure TForm1.RestartClick(Sender: TObject);
begin
Visible := False;
WinExec('Project1.exe', SW_SHOWNORMAL );
Close;
end;

Le problème est que la deuxième instance de ton application est lancé avant que la première ne soit terminée.
Si tu ne fais pas un controle sur une double instance (ton application est démarrer deux fois) ça fonctionnera

@+
Cirec
Messages postés
374
Date d'inscription
vendredi 20 octobre 2000
Statut
Modérateur
Dernière intervention
15 janvier 2021

Il ya plusieurs solutions , les 2 les plus courantes:

Solution 1: Tu peux utiliser le planificateur de taches.

1.Parametrer le planificateur
2.Fermer l'appli
......
3.Le planificateur relance l'appli
4.Enlever les parametres dans le planificateur

Solution 2 : Faire un second executable (ou meme un batch)
Lancer l'excutable externe
Quitter l'appli principale

L'executable externe attend (par ex avec un sleep, ou attend un evenement donné)
L'executable externe relance l'application principale
L'executable externe se feme.

Bon Coding ....

ManChesTer.
Messages postés
6
Date d'inscription
jeudi 11 novembre 2004
Statut
Membre
Dernière intervention
15 octobre 2009

Je remercie Manchester et Cirec de leurs solutions qui sont toutes les 2 pertinentes, mais, comme il faut faire un choix, je vais travailler la solution de Cirec.
Cordialement.