【发布时间】:2010-08-02 10:18:35
【问题描述】:
我想用 Java 编写一个 Windows 7 窗口管理器,但是有一些问题。首先,我如何操作不属于我自己的应用程序的窗口的大小和位置?换句话说,我该如何操作其他应用程序的窗口?
关于我的第一个问题,是否可以获得所有当前窗口的列表?
最后一个问题:Java 适合这个任务还是我应该看看 C#?
【问题讨论】:
我想用 Java 编写一个 Windows 7 窗口管理器,但是有一些问题。首先,我如何操作不属于我自己的应用程序的窗口的大小和位置?换句话说,我该如何操作其他应用程序的窗口?
关于我的第一个问题,是否可以获得所有当前窗口的列表?
最后一个问题:Java 适合这个任务还是我应该看看 C#?
【问题讨论】:
首先:Java 可能不是最适合这项任务的语言。您需要调用本机 Windows API,因此 C/C++ 很自然。您可以将 Java 与 JNI 一起使用,但可能不值得这么麻烦。我不知道 C#/Managed C++,所以不能说什么。
获取当前 Windows 的列表: http://support.microsoft.com/kb/183009
改变窗口位置:
设置窗口位置
设置窗口位置
您可能还需要在窗口更改时获得通知。看看例如SetWindowsHookEx,尤其是 CBTHook。
编辑:我上次尝试时,总是允许更改其他进程的窗口。如果在 windows7 下不再允许这样做,您可以随时安装一个全局挂钩并从进程内部更改窗口...
【讨论】: