我正在编写一个程序来杀死并重新启动资源管理器,但我不想硬编码该位置,因为有些人将 Windows 安装在不同的地方(例如,我发现有人将它安装在 d:\ 驱动器中 C:\驱动器确实存在,但没有安装任何东西)
我尝试在 Environment.SpecialFolder 下查找。但我没有看到下面的“windows”选项
做这个的最好方式是什么?
我正在编写一个程序来杀死并重新启动资源管理器,但我不想硬编码该位置,因为有些人将 Windows 安装在不同的地方(例如,我发现有人将它安装在 d:\ 驱动器中 C:\驱动器确实存在,但没有安装任何东西)
我尝试在 Environment.SpecialFolder 下查找。但我没有看到下面的“windows”选项
做这个的最好方式是什么?
http://msdn.microsoft.com/en-us/library/77zkk0b6.aspx
试试这些:
Environment.GetEnvironmentVariable("SystemRoot")
Environment.GetEnvironmentVariable("windir")
Environment.GetFolderPath( Environment.SpecialFolder.Windows )
将返回 Windows 文件夹的路径。在环境变量上推荐这种方法,因为使用的 API 完全符合我们的要求(.NET 4.0 及更高版本)。
我强烈建议使用:
Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.System))
它不需要管理员权限并支持所有版本的 .NET 框架。
要简单地杀死并重新启动 Windows 资源管理器,您不需要系统文件夹的路径,因为它已经包含在 PATH 环境变量中(除非用户弄乱了它)。
该短程序将杀死所有 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");
}