【发布时间】:2014-01-31 22:36:05
【问题描述】:
我需要为 Windows 8.1 开发一个很小的应用程序,它应该包含很少的代码行,因为唯一的目的是在第 3 方程序杀死 explorer.exe 后初始化 Windows 8 操作系统桌面(不是启动屏幕) .
我会更好地解释这一点:
我已经进行了 Windows 8 的无人值守安装,需要静默安装特定程序(程序为 StartIsBackPlus),要静默安装程序作者说使用参数/silent 执行安装程序:
StartIsBackPlus_Setup.exe /Silent
好吧,如果您没有注意到该程序是 Windows 8.1 的 Windows 开始按钮替代品,而我遇到的问题是,在该程序的静默安装完成后,该程序会杀死/关闭“桌面"(explorer.exe进程),任务栏和墙消失,只显示纯色背景。
要解决这个问题,我的意思是手动重新初始化桌面,打开任务管理器并运行一个新进程(explorer.exe)就这么简单,但正如我所说,这需要完全无人看管,目前我尝试重现此步骤(例如从 CMD 或从开发的 .NET 应用程序静默打开 explorer.exe)它只是打开一个新的资源管理器窗口,我不明白为什么 CMD 只打开一个资源管理器窗口但如果我启动TaskManager 中的 explorer.exe 进程会正确地重新初始化整个桌面。
然后我需要编写一个方法来重新初始化 Windows 桌面的元素(资源管理器和任务栏),就像 TaskManager 在手动运行 explorer.exe 时所做的那样,在安装了这个有问题的第 3 方程序之后。
...但是不像使用Process.Start方法启动explorer.exe进程那么容易,因为我已经尝试过了,它只打开一个新的资源管理器窗口,桌子仍然消失,然后是一个简单的进程.Start("Explorer.exe") 未正确初始化此场景中的 Windows 桌面。
那么...在这样的第 3 方程序杀死 explorer.exe 后,初始化 Windows 桌面的正确方法是什么?
【问题讨论】:
-
正如@LB 试图说的那样——听起来你有一个不同的问题——你不需要初始化 Windows 桌面,而是找到一种方法来阻止它首先杀死它也许是地方(或其他东西)?
-
@Chris 我会解释详细信息,该应用程序是一个 StartButton 安装程序,它取代了 windows 8 的启动按钮,安装后它关闭 explorer.exe(屏幕变为纯色,它删除了任务栏太),那么如果我只是重新启动 explorer.exe 进程,桌面元素不会初始化它只会打开一个新的资源管理器窗口。
-
这是因为我为一个应用程序做了一个自定义的静默安装程序,安装后会自动关闭 explorer.exe, IIRC ClassicShell 安装时不会杀死 explorer,所以也许可以做它的工作...而且不要杀死探险家...
-
@ta.speot.is 感谢您的评论,但使用 ClassicShell 替换对我来说不是一个解决方案,我需要使用我评论过的软件我已经付费了
标签: c# .net vb.net windows windows-8