2010-11-25 5 views
3

J'essaie de faire une application simple en C# qui me permet de tuer et d'activer explorer.exe. J'ai besoin d'un tel programme pour pouvoir jouer à Age of Empires 2 correctement, car il n'aime pas explorer.exe pour une raison quelconque (je crois que cela a à voir avec Aero). J'ai donc fait deux boutons, un qui active explorer.exe et l'autre le désactive. Killing explorer.exe s'est bien passé, mais l'activation n'a pas fonctionné.Démarrer explorer.exe ne fonctionne pas correctement en C#

J'ai lu sur quelques sites que vous devez utiliser le Process.Start(); pour démarrer un processus. J'ai donc fait Process.Start("explorer.exe");. Après avoir tué explorer.exe, il a exécuté la ligne précédente mais au lieu d'avoir ma barre des tâches en arrière, il a ouvert 'Libraries' seulement sans redonner ma barre des tâches. J'ai également essayé Process.Start("explorer.exe", "-p"); (je l'ai vu quelque part), mais cela a ouvert «Mes documents».

Que puis-je faire pour qu'il démarre le processus explorer.exe de sorte que j'ai des choses comme la barre des tâches de retour? Je peux toujours le lancer correctement avec Invite de commandes/Gestionnaire de tâches/Exécuter.

+0

En outre, cette question est assez similaire - http://stackoverflow.com/questions/1118017/how-do-i-start-explorer-using-process-class-in-c – Dave

Répondre

0

Solution à that sujet:

foreach(Process p in Process.GetProcesses()) 
{ 
    try 
    { 
     // Compare it with "explorer". 
     if(p.MainModule.ModuleName.Contains("explorer") == true) 
     { 
      p.Kill(); 
     } 
    } 
    catch(Exception e) 
    { 
     // Do some exception handling here. 
    } 

    // Restart explorer. 
    Process.Start("explorer.exe"); 
} 

Donnez un coup de feu.

+1

Eh bien, en fait, le lien que vous avez donné auparavant (celui que vous avez dit était similaire à ma question) a fait l'affaire. J'ai fait Process.Start (@ "c: \\ windows \\ explorer.exe"); qui a parfaitement fonctionné. Merci! – Brick

+2

Ne pas coder en dur le chemin d'accès à l'explorateur. Appelez Envoromment.WindowsDirectory. – Joshua

+0

Ce n'est pas vraiment important, c'est juste pour moi. Bien que je sois très nouveau à C#, à quoi ressemblerait le code exact si je le faisais avec Environment.WindowsDirectory? De plus, visual C# ne reconnaît pas la partie 'WindowsDirectory'. – Brick

Questions connexes