【问题标题】:How do I programmatically resize and change position of a window如何以编程方式调整窗口的大小和位置
【发布时间】:2018-04-02 09:32:45
【问题描述】:

如何以编程方式调整其他应用程序窗口的大小(和位置)?我想用 Java 编写代码,我想调整所有窗口的大小,而不仅仅是那些由 JVM 创建的窗口。我正在使用 Windows XP。如果有更多选项,我想更改这些窗口的其他属性。

cmets后的补充信息:

问:你为什么要这么做? 答:Windows 缺少在多个显示器之间移动窗口的功能快速。你试过 WinSplit Revolution 9.02 吗?它具有一些强大的功能,只需按下几下按钮即可移动/定位窗口。你根本不需要抓鼠标。

【问题讨论】:

  • 有什么想法吗?也许你看过一些开源的java项目,所以我可以看一下代码?
  • 恐怕你不能用java控制其他应用程序,但是你可以控制你自己创建的窗口
  • 这是我第一次看到迁移 SO而不是从它。

标签: java windows attributes


【解决方案1】:

纯java中对不属于你自己的窗口做任何事情的唯一方法是java.awt.Robot 类。但它也没有为你的目标提供任何有用的 API,所以你只能做一个截图,分析结果,然后相应地定位、按下、移动和释放鼠标——因此,做和人类用户一样的事情。

如果您想要更多,则必须获得特定于系统的信息。我认为 Windows API 和 X 协议(ant 因此是 X 客户端库)至少提供了获取有关其他程序窗口的信息的能力,我不知道如何更改它们。 (我想 Mac OS 也有这样的能力。)

这通常意味着至少用 C(或任何其他访问此类库的语言)编写此功能的基础知识,然后使用 JNI 从 Java 中访问它。您还可以使用 JNA(Java 本机访问)之类的 JNI 包装库来省略 JNI 步骤。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多