Я не могу ответить на ваш вопрос напрямую, но я столкнулся с аналогичной проблемой, с которой я боролся: сделать снимок экрана Shell
или Widget
, пока он закрыт из вида.
Рассмотрим, например, окно A
, которое перекрывает окно B
.Снимок экрана сделан из B
с использованием вашего кода:
Image screenshot = new Image(shellB.getDisplay(), shellB.getBounds());
GC.copyArea(screenshot, 0, 0);
Мои результаты показали, что это можно сделать в Windows Vista, Windows 7 и Mac OS X (хотя я не уверен насчет последнего).Однако в Windows XP, Linux с GNOME и Linux с KDE скриншот содержит белую область, где перекрывающееся окно препятствует просмотру.
Я не нашел решения для этого, и подозреваю, что не толькозависит ли это поведение от платформы поведения, но также довольно глючит в SWT.
Хотелось бы услышать, что я не в курсе, хотя!