Как сделать скриншот в WP8?

Как сделать полный скриншот WP8? Под «полным» я подразумеваю «включая строку приложения, строку состояния, окна сообщений и клавиатуру».

Что я пробовал:

GDI API, работавший в WP7 (GetDC, CreateCompatibleDC, BitBlt), результат CreateCompatibleDC или CreateDCW возвращают NULL, GetLastError сообщает, что «указанная процедура не может быть найдена». Более того, похоже, что WP8 имеет только один HDC, а именно 0x00dc00dc, поэтому внеэкранные GDI DC невозможны.

InvokeScreenCapture и SaveApplicationScreenShot из ShellChrome.dll - приложение деактивируется, больше ничего не происходит.

D3D11Device1 :: GetImmediateContext, ID3D11RenderTargetView :: OMGetRenderTargets - OMGetRenderTargets возвращает NULL.

Есть другие идеи?

Мне не нужно проходить сертификацию торговой площадки, поэтому неподдерживаемые / недокументированные API-интерфейсы допустимы.


person Soonts    schedule 13.06.2013    source источник
comment
Бейтан, этот метод не захватывает какие-либо элементы пользовательского интерфейса, отличные от Silverlight (панель приложения, окно сообщения, клавиатура, строка состояния).   -  person Soonts    schedule 13.06.2013
comment
Я ожидал этого, нужно было убедиться. хорошо, тогда.   -  person Beytan Kurt    schedule 13.06.2013
comment
Вы можете нажать клавишу Windows и кнопку питания или использовать инструмент для создания снимков экрана эмулятора, но мне ничего не известно о программном способе.   -  person Paul Annetts    schedule 13.06.2013
comment
Пол, мне нужен программный способ .. Вы случайно не знаете, какой процесс или модуль обрабатывает комбинацию Win + Power? Я живу в стране, где обратное проектирование в законных целях совершенно законно.   -  person Soonts    schedule 13.06.2013
comment
Даже если бы существовал способ взломать комбинацию Win + Power, вы бы не получили такое приложение через процесс отправки / проверки в магазине, так в чем был бы смысл? Если бы это было ваше приложение, вы бы знали, как должен выглядеть ApplicationBar, чтобы вы могли добавить его к изображению, захваченному программно, если вам ДЕЙСТВИТЕЛЬНО нужно.   -  person Matt Lacey    schedule 13.06.2013
comment
Мэтт, я указал в своем вопросе, что мне не нужно проходить сертификацию торговой площадки. WP8 имеет 3 разных размера экрана * 2 ориентации. Кроме панели приложений, есть и другие элементы пользовательского интерфейса, отличные от Silverlight, такие как программная клавиатура и окна сообщений.   -  person Soonts    schedule 14.06.2013


Ответы (1)


В WP8 и ниже нет возможности захватить весь экран без запуска в TCB (требуется взломанный образ) и загрузки в библиотеки, которые не поставляются с каким-либо SDK.

person Oren    schedule 13.06.2013
comment
Я уже создал несколько библиотек, которые не поставляются с каким-либо SDK (например, ext-ms-win-gdi-dc-create-l1-1-0.lib). Вы знаете API, который делает то, что я хочу? - person Soonts; 14.06.2013
comment
Кроме того, ваш and under неверен: в WP7 отлично работают GetDC, CreateCompatibleDC, BitBlt, вот XAP: forum.xda-developers.com/showthread.php?t=1316199 - person Soonts; 14.06.2013