Pregunta

Estoy escribiendo un programa para matar y reiniciar el explorador, pero no quiero a codificar la ubicación debido a que algunas personas instalan ventanas en diferentes lugares (por ejemplo, me encontré a alguien que se había instalado en la unidad D: \ donde el C: \ unidad existía, pero había nada instalado en él)

He intentado buscar debajo Environment.SpecialFolder. pero no veo una opción de "ventanas" en virtud de que

¿Cuál es la mejor manera de hacer esto?

¿Fue útil?

Solución

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

Trate siguientes:

Environment.GetEnvironmentVariable("SystemRoot")

Environment.GetEnvironmentVariable("windir")

Otros consejos

Environment.GetFolderPath( Environment.SpecialFolder.Windows ) devolverá la ruta de la carpeta de Windows. Recomendar este enfoque sobre la variable de entorno, porque el uso de una API que hace exactamente lo que queremos (.NET 4.0 y superior).

Yo recomendaría el uso de:

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

No requiere derechos de administrador y es compatible con todas las versiones del marco .NET.

Para simplemente matar y reiniciar el Explorador de Windows no necesitaría la ruta de la carpeta del sistema ya que esto ya está incluido en la variable de entorno PATH (a menos que el usuario se metió con él).

Ese programa corto matará a todas las instancias y reinicie explorer.exe explorer.exe:

static void Main(string[] args)
{
    foreach (Process process in Process.GetProcessesByName("explorer"))
    {
        if (!process.HasExited)
        {
            process.Kill();
        }
    }
    Process.Start("explorer.exe");
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top