Windows 10获取当前进程explorer vs explorer . exe

本文关键字:explorer vs exe 进程 获取 Windows | 更新日期: 2023-09-27 18:03:20

在Unity3D中使用c#,运行Windows 10,我有一个退出Windows资源管理器(操作系统界面不是浏览器)的应用程序。

然而,似乎当操作系统第一次启动该进程被称为"explorer.exe"后,我杀死windows资源管理器并重新启动它,使用Application.OpenURL("C:' windows 'explorer.exe"),我发现该进程现在被称为"explorer"。

有人知道为什么看似相同的过程有两个不同的名称吗?

重新表述,希望符合网站标准;在我的理解中,我不应该只需要找到一个叫做"explorer"的过程吗?我是否通过杀死"Explorer.EXE"引起了不可预见的问题。

下面是我的代码
public void KillExplorer()
{
    // when coomputer first starts, I can find the explorer with Process.GetProcessesByName("Explorer.EXE"). 
    // After I kill explorer this no longer works. Process.GetProcessesByName("Explorer.EXE") retuns a empty array
    foreach (Process p in Process.GetProcessesByName("Explorer.EXE"))
    {
        try {
            p.ForceKill();
        } catch(Exception e){
            print("unable to kill explorere "+ e);
        }
    }
    // 
    // after I kill the explorer once, I can find the explorer with Process.GetProcessesByName("explorer")
    // but if I use this after the computer has just restarted Process.GetProcessesByName("explorer") returns an empty array
    foreach (Process p in Process.GetProcessesByName("explorer"))
    {
        try {
            p.ForceKill();
        } catch(Exception e){
            print("unable to kill explorere "+ e);
        }
    }
}
public void LaunchExplorer()
{
    string path = "C:''Windows''explorer.exe";
    Application.OpenURL(path);
}

Windows 10获取当前进程explorer vs explorer . exe

GetProcessesByName不返回可执行文件名,而是"友好的"进程名。可能explorer在从崩溃中恢复时以不同的方式启动,这导致它获得不同的名称。只要同时搜索explorer.exeexplorer