Question

Je suis en train d'écrire un programme pour tuer et redémarrer l'explorateur, mais je ne veux pas coder en dur l'emplacement parce que certaines personnes installent des fenêtres dans des endroits différents (par exemple j'ai trouvé quelqu'un qui l'a fait installé dans le répertoire d: \ lecteur où le C: \ disque existait mais avait rien installé)

J'ai essayé de regarder sous Environment.SpecialFolder. mais je ne vois pas une option « fenêtres » sous cette

Quelle est la meilleure façon de le faire?

Était-ce utile?

La solution

http://msdn.microsoft.com/en-us/library/ 77zkk0b6.aspx

Essayez:

Environment.GetEnvironmentVariable("SystemRoot")

Environment.GetEnvironmentVariable("windir")

Autres conseils

Environment.GetFolderPath( Environment.SpecialFolder.Windows ) retourne le chemin vers le dossier Windows. Recommander cette approche sur la variable d'environnement, parce que l'utilisation d'une API qui fait exactement ce que nous voulons (.NET 4.0 et ci-dessus).

Je recommande fortement l'utilisation de:

Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.System))

Il ne nécessite pas de droits d'administrateur et prend en charge toutes les versions du framework .NET.

Pour tuer simplement et redémarrez Windows Explorer, vous auriez pas besoin du chemin d'accès au dossier système comme cela est déjà inclus dans la variable d'environnement PATH (sauf si l'utilisateur foiré avec elle).

Ce programme court va tuer tous les cas explorer.exe puis redémarrez explorer.exe:

static void Main(string[] args)
{
    foreach (Process process in Process.GetProcessesByName("explorer"))
    {
        if (!process.HasExited)
        {
            process.Kill();
        }
    }
    Process.Start("explorer.exe");
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top