slt!
Je développe en Visual C#2008 et j'ai u problème.
J'ai un fichier nommé code.txt que je veux lancer dans mon application comme processus au click sur un bouton button1.
Je veux au fait que si le fichier est déjà en cours d'utilisation, que le messagebox s'afficher, sinon, qu'il se lance normalement.
J'ai essayé
Mais il ne me répond pas convenablement,même si le processus n'est pas lancé, il ne fait qu'afficher le messagebox à tout moment.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 private void button1_Click(object sender, EventArgs e) { Process pcur = Process.GetCurrentProcess(); Process[] pr = Process.GetProcesses(); foreach(Process p in pr) { if (pcur.Id != p.Id) { if (pcur.ProcessName == p.ProcessName) Process.Start("code.txt"); } else { MessageBox.Show("processus deja en cours", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } }
J'ai lu le msdn et lafaq du site, mais ces derniers ne parlent que de comment ne pas lancer l'application courante deux fois, alors que moi je veus empêcher que dans l'application, un processus soit lancé deux fois.
J'ai modifié la condition comme ceci:
Ici, il lance le processus mais le messageboxs'affiche autant de fois qu'il y a des processus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 private void button1_Click(object sender, EventArgs e) { Process pcur = Process.GetCurrentProcess(); Process[] pr = Process.GetProcesses(); foreach(Process p in pr) { if (pcur.Id != p.Id) { if (pcur.ProcessName != p.ProcessName) MessageBox.Show("processus deja en cours", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { Process.Start("code.txt"); } } }
Merci
TM018
Partager