2010-08-02 8 views
1

Я хочу написать Windows 7 Window Manager в Java, но есть некоторые проблемы. Прежде всего, как я могу манипулировать размером и положением окна, которое не принадлежит моему собственному приложению? Другими словами, как я могу манипулировать окнами других приложений?Управление окнами из других приложений в Java

И, связанный с моим первым вопросом, можно ли получить список всех текущих окон?

И последний вопрос: подходит ли Java для этой задачи или я должен взглянуть на C#?

ответ

2

Во-первых: Java, вероятно, не самый подходящий язык для этой задачи. Вам нужно вызвать собственный Windows API, поэтому C/C++ будет естественным. Вы можете использовать Java с JNI, но, вероятно, не стоит хлопот. Я не знаю о C#/Managed C++, поэтому не могу сказать что-то об этом.

Получение списка текущего окна: http://support.microsoft.com/kb/183009

Изменение позиций окна:
SetWindowPos
SetWindowPlacement

Вам также может понадобиться, чтобы получить информацию всякий раз, когда окно изменяется. Посмотрите, например. SetWindowsHookEx, особенно CBTHook.

Редактировать: В последний раз, когда я пытался, всегда разрешалось изменять окна других процессов. Если это больше не разрешено под windows7, вы всегда можете установить глобальный крючок и изменить окна из INSIDE процесса ...

+0

Я согласен. Если вы собираетесь взаимодействовать с базовой ОС, C/C++ будет лучше, чем Java. – Richard

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