【问题标题】:Can't start explorer process in c#, just the window file explorer无法在c#中启动资源管理器进程,只是窗口文件资源管理器
【发布时间】:2014-04-01 14:07:26
【问题描述】:

我想使用任务栏等启动资源管理器进程,但是当我启动它(在代码中)时,我只打开了文件资源管理器的窗口,而不是其他窗口。但是,如果我在 taskManager 中执行“explorer.exe”,它就可以工作。就在我在 Windows 7 64 位机器上执行此操作时。在 Windows 7 32 位系统上,它可以工作! 我们如何在 64 位 Windows 上做到这一点?

这是我的代码:

Process Appli = new Process();
Appli.StartInfo.FileName = "explorer.exe";
Appli.StartInfo.UseShellExecute = false;
Appli.StartInfo.RedirectStandardOutput = false;
Appli.Start();

当它执行时,我的桌面(没有图标)只有一个窗口文件资源管理器。

我的这个项目的属性平台是“Any CPU”

谁能帮帮我?

非常感谢!

【问题讨论】:

  • 是的,您在加载资源管理器时确实会出现此行为。旧版本的 Windows 也可以从任务管理器中获取此信息,但在较新版本中没有。我相信它必须在 exe 加载和交换行为时检测到启动它的进程。
  • 直接加载explorer是什么原因?
  • 您是否尝试过将目录作为参数传递给 explorer.exe?
  • 这是一个重启资源管理器的控制台应用stackoverflow.com/a/10438722/956658

标签: c# .net process


【解决方案1】:

即使你指定了 AnyCPU,Visual Studio 也可能默认指定“首选 32 位”选项。如果是这种情况,那么它生成的 explorer.exe 将是一个 32 位进程,而不是 shell。

如果您在项目属性/构建下关闭“首选 32 位”标志,那么您的应用程序将作为 64 位应用程序运行,并将生成 64 位 explorer.exe 作为 shell。

【讨论】:

  • 非常好...很高兴能帮上忙!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-31
  • 2018-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多