我有一个频繁使用启动explorer.exe的应用程序。我想重新使用现有的/已经打开的浏览器窗口,而不是每次启动过程时创建一个新窗口。如何重新使用现有/已打开的Windows资源管理器窗口启动资源管理器
这里是我的代码如下所示:
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo
{
UseShellExecute = true,
FileName = "Explorer.exe",
Arguments = myDirectoryPath
};
System.Diagnostics.Process.Start(info);
我没有看到一个command-line开关来做到这一点。一种方法我试过是简单地杀死任何1个现有Explorer进程,并用一个新的更换:
var processes = System.Diagnostics.Process.GetProcesses(Environment.MachineName);int kills = 0;
for (int i = 0; i < processes.Length; i++)
{
System.Diagnostics.Process p = processes[i];
if (p.ProcessName == "explorer" && kills < 1)
++kills
p.Kill();
}
但是这导致的不不必要的影响只是杀死1点的过程,但彻底查杀探险以至于连任务栏消失。
那么,如何使用现有的Explorer窗口(如果存在)来启动Explorer?
如果您的用户有一个资源管理器窗口打开到一个目录由于其他原因,并不想成为从该目录中取出?你认为这种方法会导致你的用户感到沮丧吗? – Phil 2011-01-28 17:31:01
这是一个值得关注的问题,但我的用户表示他们只是说他们想重新使用任何现有的资源管理器窗口,而不是让我的应用每次都打开新的副本。否则,我不得不确定哪些浏览器窗口是由我的应用程序打开的,只能重新使用这些窗口。 – 2011-01-28 18:41:31