【问题标题】:how do i start explorer using process class in c#如何在 C# 中使用进程类启动资源管理器
【发布时间】:2009-07-13 07:00:24
【问题描述】:

我已经用我的应用程序替换了 windows shell,它运行良好,关闭我的应用程序后,我必须使用以下代码启动 windows 资源管理器

启动资源管理器的代码

Process.Start(@"c:\windows\explorer.exe");

我用来替换 shell 的注册表项

HKEY_Local_Machine\Software\Microsoft\WindowsNT\CurrentVersion\WinLogon\Shell 

它不显示任务栏和开始菜单,它只显示 mydocuments 文件夹。资源管理器启动后我需要开始菜单和任务栏

【问题讨论】:

    标签: c# windows shell process registry


    【解决方案1】:

    我的猜测是,由于 explorer 没有被定义为 shell,它不会作为 shell 运行。我认为您必须在运行之前更改注册表设置以使 explorer 再次成为 shell。

    【讨论】:

    • 我必须从我的应用程序中启动资源管理器。无需更改注册表。因为我的应用程序添加到 windows shell 并成功启动
    【解决方案2】:

    因此,正如您所写,您将注册表中的 shell 替换为您自己的版本。因此,显示开始菜单等由您决定。如果您想启动资源管理器并让它充当外壳,请继续将注册表中的条目替换为旧条目。

    由于你喜欢再次成为shell,下次windows启动时,也许下面的技巧可以做到:

    先决条件:

    • 将您的程序作为 shell 放入注册表并启动窗口
    • 您的程序正在运行并希望以 shell 方式启动资源管理器

    要采取的行动:

    1. 将注册表中的条目替换为包含 explorer as shell 的条目
    2. 启动浏览器
    3. 将注册表中的条目作为 shell 程序替换回您的应用程序
    4. 等到下次启动...

    【讨论】:

      【解决方案3】:

      在再次启动资源管理器之前,您可能必须终止现有的 shell 进程(即您的应用程序)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-15
        • 2017-10-29
        相关资源
        最近更新 更多