我的目标是编写一个 C# 代码,该代码将打开一个 Windows 资源管理器窗口,并选择一个特定的文件。如果这样的窗口已经打开,我想把它带到前面。我尝试了两种选择。
首先,我首先明确调用explorer.exe
:
arg = "/select, " + pathToFile;
Process.Start("explorer.exe", arg);
这会打开并很好地选择一个窗口,但问题是它总是会打开一个新窗口,即使存在一个。所以我尝试了这个:
Process.Start(pathToDir);
这要么打开一个新窗口,要么聚焦一个旧窗口,但我没有选择文件的选项。
我能做些什么?我查看了explorer
的论点,但没有看到任何可以使用的东西。我能想到的最后一个选择是获取已经打开的窗口的列表并使用一些 WINAPI 级别的代码来处理它,但这似乎有点矫枉过正。