Savoir si un processus est actif / erreur if:else

[Résolu]
Signaler
Messages postés
15
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
21 février 2009
-
Messages postés
339
Date d'inscription
dimanche 26 janvier 2003
Statut
Membre
Dernière intervention
25 mars 2009
-
Bonsoir à tous.
 Je cherche actuellement à créer un programme qui relancerai un processus si il s'est arrêté pour une raison quelconque. Il faut donc arriver à récupérer son nom dans la liste des process, et si il n'y est pas, le relancer. J'y suis parvenu, mais malheureusement j'ai cette erreur: Terme d'expression non valide 'else'    Je ne comprends pas trop.

 De plus, j'aurais besoin de vos conseils, car je ne sais pas si il faudrait effectuer cette action en boucle, ou seulement toutes les 30 secondes? Qu'en pensez vous?

Voici mon code, je débute donc c'est pas très beau ^^.

            static void Main() {
                if (Process.GetProcessesByName("Start").Length > 1)
                {
                    label1.Text = ("Server On");
                };
                else (Process.GetProcessesByName("Start").Length < 1);
                {
                    Process processus = new Process();
                    Process.Start(new ProcessStartInfo(@"./start.exe"));
                    label1.Text = ("Server On");
                };

Merci beaucoup!

5 réponses

Messages postés
357
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
26 décembre 2011
4
Salut,
Je viens de m'apercevoir que j'avais oublié de supprimer un ";" à la fin du "else"

static void Main() {
                if (Process.GetProcessesByName("Start").Length > 1)
                {
                    label1.Text = ("Server On");
                }
                else (Process.GetProcessesByName("Start").Length < 1)
                {
                    Process processus = new Process();
                    Process.Start(new ProcessStartInfo(@"./start.exe"));
                    label1.Text = ("Server On");
                }
}

A+
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
Salut,

static void Main() {
    if (Process.GetProcessesByName("Start").Length > 1)
    {
        label1.Text = ("Server On");
    }
    else // <strike>(Process.GetProcessesByName("Start").Length < 1)
</strike>    {
       // <strike>Process processus = new Process();
</strike>        Process.Start(new ProcessStartInfo(@"./start.exe"));
        label1.Text = ("Server On");
    }
}
Messages postés
15
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
21 février 2009

Merci beaucoup pour tes réponses, voici mon code:

        private void Form1_Load(object sender, EventArgs e)
        {
if (Process.GetProcessesByName("Start").Length > 1)
                {
                    label1.Text = ("Server On");
                }
                else (Process.GetProcessesByName("Start").Length < 1)
                {
                    Process processus = new Process();
                    Process.Start(new ProcessStartInfo(@"./start.exe"));
                    label1.Text = ("Server On");
                }
}

Mais il me demande de mettre un ; à la fin de la ligne else. Je ne comprends pas trop, pourtant j'ai révisé la syntaxe...

Merci pour vos éclaircissements.
Messages postés
15
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
21 février 2009

Ah ou bien sur pas besoin de preciser le else, sachant que c'est que si if ne convient pas. Un grand merci à vous deux. Resolu =D
Messages postés
339
Date d'inscription
dimanche 26 janvier 2003
Statut
Membre
Dernière intervention
25 mars 2009
5
Je te conseille de faire un petit tour chez tonton Kernighan et Ritchie avant d'aller plus loin:

http://www.amazon.fr/langage-C-Norme-ANSI/dp/2100487345/ref=sr_1_1?ie=UTF8&qid=1228365157&sr=8-1

Commencer à programmer sans être passé par là, c'est une hérésie ;o