Как использовать Java для перемещения окон Windows на экране? - PullRequest
2 голосов
/ 23 марта 2012

Я обдумывал создание оконного менеджера с графическим интерфейсом, возможно, на Java.Тем не менее, я изо всех сил пытаюсь найти лучший способ переместить окна, не принадлежащие моей программе.

Пока что мне кажется, что я должен использовать JNI для взаимодействия с Windows API, но я не нашел полезных примеров.

Кто-нибудь знает, как это сделать?

Спасибо!

PS.Я не обязательно привязан к Java, если есть лучший язык для этого.

1 Ответ

3 голосов
/ 04 апреля 2012

Если цель состоит в том, чтобы иметь быстрый оконный менеджер, вам, безусловно, лучше с C ++ или C #, или, возможно, даже с Delphi.

Но если вы наиболее знакомы с Java, это можно сделать.

Если вы выберете (устаревший) JNI, вам придется написать DLL на C или Delphi, которую будет использовать ваше Java-приложение.Вместо этого вы должны использовать JNA для доступа к функциям API обработки окон Windows.

Вот некоторые из функций, которые вы бы использовали:

    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 на MSDN

...