J'écris un programme pour tuer et redémarrer Explorer mais je ne veux pas coder en dur l'emplacement car certaines personnes installent des fenêtres à différents endroits (par exemple, j'ai trouvé quelqu'un qui l'avait installé dans le lecteur d:\où le C:\lecteur existait mais n'avait rien installé dessus)
J'ai essayé de regarder sous Environment.SpecialFolder. mais je ne vois pas d'option "windows" en dessous
Quelle est la meilleure façon de procéder?
http://msdn.Microsoft.com/en-us/library/77zkk0b6.aspx
Essayez-les:
Environment.GetEnvironmentVariable("SystemRoot")
Environment.GetEnvironmentVariable("windir")
Environment.GetFolderPath( Environment.SpecialFolder.Windows )
renverra le chemin d'accès au dossier Windows. Recommander cette approche à la variable d'environnement, car utiliser une API qui fait exactement ce que nous voulons (.NET 4.0 et supérieur).
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 simplement tuer et redémarrer l'Explorateur Windows, vous n'auriez pas besoin du chemin d'accès au dossier système car il est déjà inclus dans la variable d'environnement PATH (à moins que l'utilisateur ne s'en occupe).
Ce programme court va tuer toutes les instances Explorer.exe, puis redémarrer Explorer.exe:
static void Main(string[] args)
{
foreach (Process process in Process.GetProcessesByName("Explorer"))
{
if (!process.HasExited)
{
process.Kill();
}
}
Process.Start("Explorer.exe");
}