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

我一直在考虑使用GUI创建一个窗口管理器,可能是Java。 但是,我正在努力找出移动不属于我的程序的窗口的最佳方法。

到目前为止,似乎我应该使用JNI与Windows API进行交互,但我没有找到任何有用的示例。

有谁知道如何做到这一点?

谢谢!

PS。 如果有更好的语言,我不一定与Java联系在一起。

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

但如果您最熟悉Java,那么就可以完成。

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

您将使用的一些function是:

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函数参考