Я могу переместить окно другой программы в переднюю сторону фокуса?

Я взаимодействую с использованием приложения сторонних производителей, это - API и хотело бы переместить его в переднюю сторону фокуса (так, чтобы это было сверху всех других открытых окон), когда пользователь выполняет определенные действия. В то время как я могу переместить свое приложение вверх и вниз в иерархию довольно легко, кажется, нет способа взаимодействовать с другими окнами. Действительно ли возможно переместить окно другой программы в переднюю сторону с Java?

6
задан TwentyMiles 22 April 2010 в 20:49
поделиться

2 ответа

Вы не можете сделать это в чистом Java-коде, но можете использовать JNI. См. В Java Swing, как получить ссылку дескриптора окна Win32 (hwnd) на окно? , чтобы узнать, как получить дескриптор окна. Затем вы можете сделать что-то вроде http://msdn.microsoft.com/en-us/library/ms633545 , чтобы переместить его на передний план.

Предостережение: это только для Windows

5
ответ дан 17 December 2019 в 02:25
поделиться

Это невозможно в чистой Java, а в некоторых ОС невозможно даже чисто получить другую позицию окна (например, удачи в этом в OS X 10.4: OS X 10.4 делает не имеют какое-либо задокументированное средство для регистрации для событий других окон ... Есть "хаки", но они действительно хакерские, например, требовать от пользователя включить "Разрешить вспомогательное устройство" , для чего требуется пароль администратора OS X).

1
ответ дан 17 December 2019 в 02:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: