probleme de processus unique
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é
Code:
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);
}
}
} |
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.
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:
Code:
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");
}
}
} |
Ici, il lance le processus mais le messageboxs'affiche autant de fois qu'il y a des processus.
Merci
TM018
J'attends une solution claire!!!
Slt!
Ca fait plus d'un mois que j'ai posté ce message, j'attends une solution claire, svp...
Merci
TM018