Kill explorer.exe puis le relancer...

Résolu
Signaler
Messages postés
19
Date d'inscription
dimanche 4 avril 2004
Statut
Membre
Dernière intervention
17 février 2008
-
Messages postés
19
Date d'inscription
dimanche 4 avril 2004
Statut
Membre
Dernière intervention
17 février 2008
-
Bonjour à tous!



Voilà je suis en train de programmer un petit programme qui redémmare
mon "explorer.exe" (et je suis débutant). Je réussi à le lancé (même si
je sais bien qu'il est déjà lancé) et il m'affiche "Mes doccuments".
Tout va bien jusque là, mais ensuite rien ne se passe alors que la
commande suivante devrait etre un KILL.

Voici la partie de mo code à étudier:



Process myProcess;

myProcess =
Process.Start("Explorer.exe"); //Je sais qu'on derait plutôt utilisé
une varialble mais aidez moi à l'écrire car j'en ai été incapable...

myProcess.Kill();

myProcess.WaitForExit();

myProcess = Process.Start("Explorer.exe");



Serait-ce parce qu'il me faut une autorisation...



Merci d'avance!

XBOX116_4ever

7 réponses

Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008
1
tu peux utiliser ca:

Process[] myProcesses = Process.GetProcessesByName("explorer");



foreach(Process myProcess
in myProcesses)


{


myProcess.Kill();


myProcess.WaitForExit();


}

comme ca tu tues explorer.exe
il est supposé redermarrer tout seul

@++
Messages postés
19
Date d'inscription
dimanche 4 avril 2004
Statut
Membre
Dernière intervention
17 février 2008

Effectivement,



Faudrait t'il que je mettre cette ligne 2 fois:



Process[] myProcesses = Process.GetProcessesByName("explorer");

Process[] myProcesses = Process.GetProcessesByName("non de l'autre processus");


???


XBOX116_4ever
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
Oui, que tu fasses le traitement pour chaque processus.
Et tu devrais peut etre chercher le moyen de récupérer le nom d'utilisateur associé au processus, afin de ne faire le kill que sur le processus de l'utilisateur de ton appli : imagine ton programme sur du multi-utilisateur, je doute que les autres utilisateurs de la machine apprecient de voir leur explorer se fermer... :-)

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
19
Date d'inscription
dimanche 4 avril 2004
Statut
Membre
Dernière intervention
17 février 2008

Je test ça tout desuite...

XBOX116_4ever
Messages postés
19
Date d'inscription
dimanche 4 avril 2004
Statut
Membre
Dernière intervention
17 février 2008

Celà fonctionne à merveille!



Serait-t'il possible de le faire par exemple avec plusieurs processus



Par Exemple:

Process[] myProcesses = Process.GetProcessesByName("explorer", "non de l'autre processus");



Ma syntaxe est-elle correcte?

XBOX116_4ever
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
Pas vraiment non, la surcharge que tu utilises est censée prendre un nom de machine en 2eme paramètre, pas un nom de processus.
Doc : GetProcessesByName

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
19
Date d'inscription
dimanche 4 avril 2004
Statut
Membre
Dernière intervention
17 février 2008

D'accord, je vais aller chercher dans la documentation.



Merci à vous deux.

XBOX116_4ever