У меня есть приложение, которое часто использует запуск explorer.exe.Я хотел бы повторно использовать существующие / уже открытые окна обозревателя вместо создания нового при каждом запуске процесса.
Вот как выглядит мой код:
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo
{
UseShellExecute = true,
FileName = "Explorer.exe",
Arguments = myDirectoryPath
};
System.Diagnostics.Process.Start(info);
Я не видел командной строки , чтобы сделать это.Один из подходов, которые я попробовал, состоял в том, чтобы просто убить 1 существующий процесс проводника и заменить его новым:
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();
}
Но это приводит к нежелательному эффекту не просто уничтожения одного процесса, но и полного уничтожения проводника,даже панель задач исчезает.
Итак, как использовать существующее окно Проводника, если оно существует, для запуска Проводника?