在explorer / select命令

时间:2015-12-23 11:19:27

标签: java windows

我们使用explorer / select命令和文件路径在Windows资源管理器中打开文件。 https://support.microsoft.com/en-us/kb/152457但是在多次调用时,它每次都会打开一个新窗口。我正在使用进程运行时API从java应用程序调用该命令。

是否可以打开一个窗口?对于例如如果正在打开带有c:/ A的资源管理器,则重复调用同一命令必须打开打开的同一窗口。 ?

欢呼声

Saurav

1 个答案:

答案 0 :(得分:0)

您的问题似乎没有一个简单的解决方案。 根据我的理解,"窗口共享" expplorer并不是探险家的特色。请查看以下文章:https://support.microsoft.com/en-us/kb/241911

(虽然本文讨论的是Internet Explorer,但我认为它也与文件探索者有关。)

根据我的用户体验,只有当您通过某种快捷方式访问目录时才会发生窗口共享,并且在您明确运行资源管理器时不会发生。例如,如果您输入"运行"窗口"资源管理器"始终会创建新窗口,但是如果键入" c:\"窗口将被重复使用。

您希望使用特定选项执行资源管理器,因此您必须显式运行它,因此无法实现窗口重用。

但我可以建议你2个解决方法。

  • 请勿使用/select选项。 "运行"要选择的文件的基目录。这将保证窗口重用。然后"选择"文件使用java.awt.Robot按"输入"它的名字。
  • 自行管理打开的资源管理器窗口到您的Java应用程序中。您可以存储文件到被攻击者窗口处理程序的映射。当应用程序要为其他资源管理器窗口中已选择的文件运行打开资源管理器时,请将其激活。为此,您需要一些JNI / JNA代码。有关详细信息,请查看以下讨论。

In Java Swing how do you get a Win32 window handle (hwnd) reference to a window?

Find out what application (window) is in focus in Java