2012-03-23 81 views
1

我一直在考慮用GUI來製作一個窗口管理器,可能是用Java編寫的。但是,我正在努力找出移動不屬於我的程序的窗口的最佳方式。如何使用Java在屏幕上移動Windows窗口?

到目前爲止,它似乎我應該使用JNI來與Windows API接口,但我還沒有找到任何有用的示例。

有誰知道如何做到這一點?

謝謝!

PS。我不必依賴於Java,如果有更好的語言來做到這一點。

+0

我確定任何本地語言都會比VM環境好得多...... – Deanna 2012-03-23 10:54:09

回答

3

如果目的是有一個快速的窗口管理器,你肯定是用C++或C#,或甚至德爾福更好。

但是,如果您對Java最熟悉,可以完成。

如果您選擇(老化)JNI,您必須使用Java應用程序將使用的C或Delphi編寫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

相關問題