我一直在考虑用 GUI 制作一个窗口管理器,可能是在 Java 中。但是,我正在努力找出移动不属于我的程序的窗口的最佳方法。
到目前为止,我似乎应该使用 JNI 来与 Windows API 交互,但我还没有找到任何有用的示例。
有谁知道如何做到这一点?
谢谢!
PS。如果有更好的语言可以做到这一点,我不一定与 Java 相关。
我一直在考虑用 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) 后,您可以对该窗口执行任何您喜欢的操作。