В Windows вы устанавливаете заставку из где-то на панелях управления .Чтобы панель управления могла взаимодействовать со сторонними заставками, она предназначена для запуска их с определенными аргументами командной строки.
Итак, когда вы выбираете заставку из списка и нажимаете «Предварительный просмотр»Кнопка, панель управления выполняет эту команду:
ScreenSaver /p 1234
Здесь «ScreenSaver» будет указывать путь к вашей программе, и значение 1234 будет указателем, указывающим HWND-ссылку для окна панели управления.Затем заставка должна добавить себя в качестве дочернего элемента этого окна для предварительного просмотра.
Аналогичным образом, когда вы нажимаете кнопку «Настройки», панель управления выполняет эту команду:
ScreenSaver /c
Программа заставки должна знать, что когда она получает этот аргумент командной строки, она должна запросить систему, для которой окно находится на переднем плане, и открыть диалоговое окно в этом окне («модальный» означает, что она блокирует доступ к этомуокно, пока диалоговое окно не будет закрыто).
Наконец, когда панель управления определяет, что на самом деле пора запускать заставку, она выполняет следующую команду:
ScreenSaver /s
Это когда вашПрограмма должна работать в полноэкранном режиме.
Теперь, что это значит для вас, как разработчика Java?
Прежде всего, вставка компонента Java в системное окно потребует некоторой сложной работы JNI.Для предварительного просмотра лучше всего сделать так, чтобы ваш код Java отображался в изображение, которое затем перетаскивалось в обычный компонент Windows через JNI.Запуск Java-диалога в системном окне, вероятно, совершенно невозможен.
Однако, если вы не возражаете против незначительных несоответствий между вашей заставкой и нативной, вы, вероятно, можете избежать этого.Вы можете просто включить режим предварительного просмотра во всплывающем окне с предварительным просмотром, а режим «Настройки» также может открыть диалоговое окно в новом окне.А полноэкранный режим должен работать без изменений.