Как использовать Java для перемещения окон Windows на экране?
Я обдумывал создание оконного менеджера с графическим интерфейсом, возможно, на Java. Тем не менее, я изо всех сил пытаюсь найти лучший способ переместить окна, не принадлежащие моей программе.
Пока что мне кажется, что я должен использовать JNI для взаимодействия с Windows API, но я не нашел никаких полезных примеров.
Кто-нибудь знает как это сделать?
Спасибо!
PS. Я не обязательно связан с Java, если есть лучший язык для этого.
1 ответ
Если цель состоит в том, чтобы иметь быстрый оконный менеджер, вам, безусловно, лучше с 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), вы можете делать все что угодно с этим окном.