有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

有人知道怎么做吗

谢谢

另外,如果有更好的语言可以做到这一点的话,我不一定与Java有关


共 (1) 个答案

  1. # 1 楼答案

    <>如果目的是拥有一个快速的窗口管理器,你当然可以用C++或C语言,甚至Delphi更好。p>

    但如果你最熟悉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),你可以用它做任何你想做的事情

    EnumWindows function reference at MSDN