如何使用Java在屏幕上移动Windows窗口



我一直在考虑用GUI制作一个窗口管理器,可能是用Java。然而,我正在努力找出移动不属于我的程序的窗口的最佳方式。

到目前为止,我似乎应该使用JNI与Windows API接口,但我还没有找到任何有用的例子。

有人知道怎么做吗?

谢谢!

PS。如果有更好的语言可以在.

中做到这一点,我不一定与Java挂钩

如果目的是拥有一个快速的窗口管理器,那么使用C++或C#,甚至Delphi肯定会更好。

但是,如果您最熟悉Java,它是可以做到的。

如果您选择(老化)JNI,您必须用C或Delphi编写一个Java应用程序将使用的DLL。您应该使用JNA来访问Windows的窗口处理API函数。

你会使用的一些功能是:

    HWND WINAPI GetWindow(HWND hWnd, UINT uCmd);
    HWND WINAPI FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName);
    BOOL WINAPI EnumWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam);
    HWND WINAPI WindowFromPoint(POINT Point);
    BOOL WINAPI MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint);

一旦您获得了窗口句柄(HWND),您就可以对该窗口执行任何您喜欢的操作。

MSDN 上的EnumWindows函数引用

最新更新