改变流程' Java中的窗口大小

时间:2014-07-16 13:03:37

标签: java process window processbuilder

我有一个Java程序,它通过ProcessBuilder启动另一个Java应用程序。我的程序在启动另一个应用程序后还会保留一个Process对象。

ProcessBuilder launcher = new ProcessBuilder(argArray);
Process processHandle = launcher.start();

在我的程序中,我有'用户首选项',用户可以在其中指定正在启动的其他应用程序的屏幕大小和位置。我需要我的程序能够以像素为单位更改其他应用程序窗口的大小和位置,最好不使用P / Invoke,因为这是一个跨平台的应用程序。有谁知道如何在Java中以编程方式更改Process的窗口大小和位置?

1 个答案:

答案 0 :(得分:2)

您无法使用纯Java执行此操作,但如果您编写JNI DLL,则可以通过Windows中的SetWindowPos执行此操作。

检查API:http://msdn.microsoft.com/en-us/library/windows/desktop/ms633545(v=vs.85).aspx

您可以通过调用EnumWindowsGetWindowThreadProcessId来获取远程流程的HWND。