2011-02-09 2 views
2

Как изменить размер (и изменить значение) окна другого приложения программно? Я хотел бы кодировать Java, и я хочу изменить размер всех окон, а не только те, которые создаются JVM. Я использую Windows XP. Я хотел бы изменить другие свойства этих окон, если есть больше опций.Как изменить размер и изменить окно окна

Дополнительная информация после комментариев:

Q: Почему вы хотите сделать это? A: Windows не имеет функции для перемещения окна по нескольким дисплеям fast. Вы пробовали WinSplit Revolution 9.02? Он имеет несколько отличных функций перемещения/позиции окна с несколькими нажатиями кнопок. Вам вообще не нужно хватать мышь.

+0

Любые идеи? Возможно, вы видели какой-то проект java с открытым исходным кодом, чтобы я мог посмотреть на код? – ViliusK

+1

Я боюсь, что вы не можете управлять другими приложениями с помощью java, однако вы можете управлять окнами, которые вы создали сами. –

+1

Это первый раз, когда я видел переход ** на ** SO, а не на него. –

ответ

1

Единственный способ сделать что-либо с окнами, которые не являются вашими в чистым java будет java.awt.Robot класс. Но он также не предлагает какой-либо полезный API для вашей цели, поэтому вы можете делать снимок экрана, анализировать результаты, а затем позиционировать, нажимать, перемещать и отпускать мышью соответственно - таким образом, делать то же, что и пользователь.

Если вы хотите больше, вам придется получить системную информацию. Я думаю, что и API Windows, и протокол X (ant, следовательно, X-клиентские библиотеки) предлагают, по крайней мере, возможность получать информацию о других окнах программ, я не знаю об их изменении. (Я полагаю, что у Mac OS тоже есть такие возможности.)

Это обычно означало бы писать по крайней мере основы этой функциональности на C (или на любом другом языке, доступ к такой библиотеке), а затем использовать JNI для доступа к этому из Ява. Вы также можете использовать библиотеку JNI-wrapping, такую ​​как JNA (Java Native access), чтобы исключить шаг JNI.

Смежные вопросы