我一直在考虑制作一个带有 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),您就可以对该窗口执行任何您喜欢的操作。
关于java - 如何使用 Java 在屏幕上移动 Windows 窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9835070/