我有一个Java程序,它通过ProcessBuilder启动另一个Java应用程序。我的程序在启动另一个应用程序后还会保留一个Process对象。
ProcessBuilder launcher = new ProcessBuilder(argArray);
Process processHandle = launcher.start();
在我的程序中,我有'用户首选项',用户可以在其中指定正在启动的其他应用程序的屏幕大小和位置。我需要我的程序能够以像素为单位更改其他应用程序窗口的大小和位置,最好不使用P / Invoke,因为这是一个跨平台的应用程序。有谁知道如何在Java中以编程方式更改Process的窗口大小和位置?
答案 0 :(得分:2)
您无法使用纯Java执行此操作,但如果您编写JNI DLL,则可以通过Windows中的SetWindowPos
执行此操作。
检查API:http://msdn.microsoft.com/en-us/library/windows/desktop/ms633545(v=vs.85).aspx
您可以通过调用EnumWindows
和GetWindowThreadProcessId
来获取远程流程的HWND。