截至目前,我正在通过WinForms开发一个模拟操作系统,用作电影的支柱。
在运行应用程序时,它会杀死explorer.exe,以便您在拍摄期间不会意外地显示Windows任务栏。问题是,关闭模拟操作系统后,我想再次启动explorer.exe。但是,Process.Start("explorer.exe");
会显示一个资源管理器窗口,并且不会重新启动窗口任务栏。
我知道一个事实,任务管理器能够通过在新任务下键入“explorer.exe”来恢复窗口任务栏,尽管我没有找到传递给任务管理器的命令行参数
修改
我在Windows 7下运行。同样,我正在深入研究这个模拟操作系统。我控制了Windows使用的很多按键。出于这个原因,我杀了explorer.exe,以便我可以使用按键,如“Alt-Tab”,并显示模拟应用程序切换器等。该应用程序已经全屏运行,但它仍然可以有基础Windows GUI弹出备份。我基本上用我自己的模拟探索器替换explorer.exe。关闭我的自定义资源管理器后,我似乎无法通过Process.Start();
启动explorer.exe来恢复常规Windows GUI。
答案 0 :(得分:11)
来自here:
尝试
Process.Start(Path.Combine(Environment.GetEnvironmentVariable("windir"), "explorer.exe"));
看来你必须指定资源管理器的完整路径才能恢复任务栏。
答案 1 :(得分:0)
来自Regex demo:
Explorer必须看到一些满足的条件才能作为shell启动:
- Explorer一定不能运行(例如,包括控制面板)
- Explorer必须看到它是实际的外壳程序-因此您需要在启动explorer.exe之前替换该值(可以在几秒钟后将其更改回去)
- 有时(在较新的Windows版本上),这似乎取决于启动explorer.exe的过程-如果explorer.exe被“了解”,尽管我对此部分没有更多详细信息(而且您不幸的是,它无法更改)