Как повторно использовать существующую / уже открытую Windows Окно проводника для запуска проводника

У меня есть приложение, которое часто запускает explorer.exe. Я хотел бы повторно использовать существующие / уже открытые окна проводника вместо того, чтобы каждый раз создавать новое при запуске процесса.

Вот как выглядит мой код:

System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo
{
    UseShellExecute = true,
    FileName = "Explorer.exe",
    Arguments = myDirectoryPath
};
System.Diagnostics.Process.Start(info);

Я не видел переключатель командной строки для этого. Один из подходов, который я пробовал, заключался в том, чтобы просто убить любой существующий процесс проводника и заменить его новым:

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 процесса, но и полного уничтожения проводника, так что даже панель задач исчезает.

Итак, как использовать существующее окно проводника, если оно существует, для запуска проводника?

6
задан jww 8 October 2018 в 05:01
поделиться