我正在编写一个小程序来修复16位程序的兼容性问题。此修复程序是关闭explorer.exe,因为资源管理器会覆盖程序中的某些调色板。之后,我们重新开放探险家。
使用.bat文件时,它可以工作:
@ECHO OFF
taskkill /f /IM explorer.exe
EmStraditionX.exe
start /B explorer.exe
此方法并不理想,因为它需要额外的文件才能下载。为了简单起见,假设我不可能分发超过C#兼容性程序。
我的第一个想法只是Process.Start("explorer.exe")
,但这不起作用,而只是在浏览器窗口中打开'Libraries'文件夹,而不再使任务栏可见。
然后我尝试使用与批处理文件相同的命令,除了这样:Process.Start("cmd.exe", "/C start /B explorer.exe")
,它再次无效。
有谁知道如何从C#重新打开任务栏?
谢谢, Ruirize。
答案 0 :(得分:4)
使用:
Process.Start(Environment.SystemDirectory + "\\..\\explorer.exe");
完整路径将使其正常工作
马丁
答案 1 :(得分:0)
您是否也在兼容性选项中使用“以管理员身份运行”功能?
如果您这样做 - 您将从另一个会话启动资源管理器,而您无法看到在其他(管理员)会话中运行的窗口。