如何使用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函数参考