如果 Windows 资源管理器在特定路径打开,则不创建新实例

dis*_*kid 3 c# windows-explorer process

我使用以下代码,以便当用户单击按钮时,将在特定路径打开Windows 资源管理器的实例。但这会导致打开资源管理器的新实例。

我想更改它,以便如果资源管理器已在同一路径中打开,则程序不会创建新进程,而是将打开的实例置于前面。

private void button_Click(object sender, EventArgs e)
{
    if (Directory.Exists(myPath))
        Process filesFolder =  Process.Start("explorer.exe", Conf.FilesLocation);               
}
Run Code Online (Sandbox Code Playgroud)

nos*_*nos 6

您可以使用“打开”动词,它将在资源管理器中打开目录,并重新使用现有的 explorer.exe(如果您向其传递一个已打开的目录):因此,假设Conf.FilesLocation是一个目录:

        var proc = new ProcessStartInfo();
        proc.FileName = Conf.FilesLocation;
        proc.Verb = "open";
        proc.WindowStyle = ProcessWindowStyle.Hidden;
        Process.Start(proc );
Run Code Online (Sandbox Code Playgroud)