【问题标题】:Change process' window size in Java在 Java 中更改进程的窗口大小
【发布时间】:2014-07-16 13:03:36
【问题描述】:

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

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

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

【问题讨论】:

  • AFAIK ,没有这样的选项。但是,如果您更多地解释您想要实现的目标。以及您从 Java 应用程序启动的应用程序类型,最好了解和探索更多选项。
  • 最坏的情况是使用 java.util.Robot 类以编程方式生成鼠标和按键(可能是 ctrl+space),最大化和移动窗口。

标签: java process window processbuilder


【解决方案1】:

你不能用纯 Java 做到这一点,但如果你编写一个 JNI DLL,你可以在 Windows 中通过SetWindowPos 做到这一点。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-27
    • 2018-03-18
    • 1970-01-01
    • 2022-07-08
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多