Capture picker windows 10 что это

Содержание
  1. 990x.top
  2. Простой компьютерный блог для души)
  3. CaptureService — что это за служба в Windows 10?
  4. CaptureService — что это такое?
  5. CaptureService — как отключить?
  6. Capture picker windows 10 что это
  7. 3 простых шага по исправлению ошибок CAPTUREPICKER.EXE
  8. 1- Очистите мусорные файлы, чтобы исправить capturepicker.exe, которое перестало работать из-за ошибки.
  9. 2- Очистите реестр, чтобы исправить capturepicker.exe, которое перестало работать из-за ошибки.
  10. 3- Настройка Windows для исправления критических ошибок capturepicker.exe:
  11. Как вы поступите с файлом capturepicker.exe?
  12. Некоторые сообщения об ошибках, которые вы можете получить в связи с capturepicker.exe файлом
  13. CAPTUREPICKER.EXE
  14. процессов:
  15. Снимок экрана Screen capture
  16. Добавление возможности захвата экрана Add the screen capture capability
  17. Запуск системного пользовательского интерфейса для создания снимка экрана Launch the system UI to start screen capture
  18. Создание пула кадров захвата и сеанса захвата Create a capture frame pool and capture session
  19. Получение кадров захвата Acquire capture frames
  20. Кадры захвата процесса Process capture frames
  21. Сделать снимок экрана Take a screenshot
  22. Реагирование на изменение размера элемента или потерю устройства React to capture item resizing or device lost
  23. Сборка Putting it all together

990x.top

Простой компьютерный блог для души)

CaptureService — что это за служба в Windows 10?

Приветствую друзья! Откуда берутся новые службы? Они могут появиться после установки некоторого софта, а также если вы обновили Windows до нового билда.

CaptureService — что это такое?

Служба записи OneCore, скорее всего нужна для функции TimeLine. OneCore это вроде просто значит концепцию одного ядра для разных устройств, такое Microsoft придумала еще в 2015-ом году.

Timeline — функция временной шкалы, которая позволяет просматривать историю взаимодействия с Windows и быстро возвращаться к предыдущим задачам. То есть это что-то вроде истории действий, где можно посмотреть список недавно используемых приложений, документов, просмотренных изображений, сайтов:

Справа идет ползунок, при помощи которого можно прокручивать историю. Поиск тоже присутствует.

Это как в Хроме можно посмотреть историю посещенных сайтов, так и здесь, только в Windows — это не сайты, а вообще все действия, например забыли каким приложением пользовались десять минут назад? Ничего, функция Timeline вам подскажет. Как понимаю, все работает примерно так.

Вообще если разобрать название службы, то:

  • Capture — означает захватывать, записывать, может как раз и имеется ввиду записывать какие действия выполнял пользователь.
  • Service — просто означает сервис, служба.

CaptureService работает под процессом svchost.exe, который запускается из системной папки с таким параметром:

%WinDir%\system32\svchost.exe -k LocalService -p

В своей работе использует также библиотеку:

  • Также нашел информацию о процессе с таким же названием — captureservice.exe, который может идти от софта eQuality, разработчик которого — Witness Systems, Inc.
  • Просто на заметку — троян Trojan.Inject3.21643 создает папку с названием captureservice в %AppData%.

Дополнительная инфа о других службах:

Инфа с форума Ru-Board.

CaptureService — как отключить?

Четкой информации о том нужна ли эта служба — нет. Поэтому если будете отключать, то на свой страх и риск, а лучше заранее создать точку восстановления.

Важно: кроме обычной службы CaptureService, у вас еще может быть клон, в названии которого в конце идет приставка _xxxxx (там набор разных символов).

Сперва я покажу универсальный способ отключения через реестр, потому что штатный способ отключения может быть заблокирован. Итак:

  1. Открываем реестр. Нужно зажать Win + R, написать команду regedit, нажать ОК.
  2. Откроется редактор реестра. Слева будут разделы, справа — параметры (ключи).
  3. Теперь переходим в такой раздел: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
  4. Внутри раздела Services находим раздел службы — он имеет такое же название, как и сама служба, то есть CaptureService. Внутри этого раздела будет параметр Start, нажимаем по нему два раза и выставляем значение 4 (Отключено). Кстати вроде бы если раздел удалить, то вы этим и службу удалите полностью, если захотите так сделать, то точка восстановления — обязательна!
  5. Делаем перезагрузку, после которой служба CaptureService уже не должна работать. Разумеется что и функция временной шкалы Timeline — тоже может не работать.

Если вдруг вы хотите попробовать отключить службу штатным способом, то вот инструкция:

Capture picker windows 10 что это

Существует две категории UWP-приложений:

• System apps — Приложения, тесно интегрированные в ОС, установленные по пути: C:\Windows\*

Classes:
— Provisioned: Устанавливаемые для каждой пользовательской учётной записи при первом входе в систему
— Installed: Установленные как составная часть ОС.

• Apps — Все иные приложения, установленные в C:\Program Files\WindowsApps

Credential Handler для Microsoft Azure Logon.
Плагин Azure Active Directory (AAD) используется для входа в Магазин Windows и/или установки Enterprise-приложений.
Удаление никогда не нарушает логин в учётную запись Microsoft.
Магазин и его приложения также без проблем входят в учетную запись MS.

Удаление AADBrokerPlugin нарушает вход в некоторые специфические (корпоративные) приложения, связанные с Azure Active Directory.
Примечание: Бесплатные приложения могут быть установлены без входа в систему.

Удаление может привести к неработоспособности опций modern-меню:

Параметры ПК -> Учетные записи -> Электронная почта и учетные записи

[+] Добавить учетную запись
— Добавить учетную запись компании или учебного заведения

• AccountsControl — Опции добавления аккаунтов (в т.ч. социальных) в Metro-меню для приложений «Почта», «Календарь», «Контакты» и пр.

Параметры ПК -> Учётные записи -> Электронная почта и учётные записи

[+] Добавить учётную запись
Добавить учётную запись компании или учебного заведения

Если эти два приложения отключены, после нажатия на кнопки ничего не происходит.
В Журнале регистрируется ошибка, но ни на что не влияет. Неработающее и ненужное меню можно скрыть из UI.

• AsyncTextService [ B ] — Асинхронный текстовый сервис.

• BioEnrollment [ B ] — Биометрика для Windows Hello.

• creddialoghost [ B ] — Ввод учётных данных.

• ECApp [ B ] — «Eye Control». It gives you the ability to control the mouse cursor position with your eyes via webcam.

• MicrosoftEdgeDevToolsClient [ B ] — Part of Microsoft Edge. (Remote) inspecting and debugging the Microsoft Edge browser.

• CapturePicker [ B ] — A system picker UI control that allows the customer to select an item on the screen to capture. UWP API.

• AppRep.ChxApp [ B ] — «SmartScreen»

• CloudExperienceHost [ B ] — Облачные приложения

• ContentDeliveryManager [ B ] — Автоматически устанавливает на компьютеры «предлагаемые приложения» без разрешения пользователей. Уязвима.

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager]
SilentInstalledAppsEnabled = 0

• narratorquickstart [ B ] — Quck Start menu for the Narrator — a screen-reading app built into Windows 10.
Lets you use your PC without a display or mouse to complete common tasks if you’re blind or have low vision.

Читайте также:  Код 43 ошибка видеокарты amd radeon windows 10

Turn On or Off Showing Narrator QuickStart Guide at Narrator Startup

[HKEY_CURRENT_USER\Software\Microsoft\Narrator\QuickStart]
SkipQuickStart =1 (DWORD) 1 = Off | 0 = On

• OOBENetworkCaptivePortal [ B ] — Аналог Google Captive Portal в Android для подключения к местным провайдерам Интернета.
Например, в отелях, на оф. web-странице с авторизацией по email/паролю. Присутствует телеметрия.
Windows требует незаблокированный msftconnecttest.com или msftncsi.com

• OOBENetworkConnectionFlow [ B ] — Позволяет расшаривать каналы подключения между участниками проекта. Работает криво.
Требует выполнение авторизации через UI офисных продуктов MS. Присутствует телеметрия.

• PeopleExperienceHost [ B ] — Часть панели «Люди». Интегрирован в Windows Shell.

• SecHealthUI [ B ]* — Интерфейс Центра безопасности Защитника Windows (Windows Defender).
Отключение предполагает полное оключение встроенных средств «безопасности».
Отвечает за открытие интерфейса по кнопке:

Параметры ПК -> Обновление и безопасность -> Безопасность Windows -> [Открыть службу «Безопасность Windows»]

Если Защитник уже полностью штатно отключен (ГП, Службы, Автозагрузка):

— «SecHealthUI» Откл.: после нажатия на кнопку ничего не происходит (в Журнале регистрируется ошибка).
— «SecHealthUI» Вкл.: после нажатия на кнопку открывается пустая страница без настроек (в Журнале ошибок нет).

ВАЖНО: * — С помощью Blackbird деактивировать можно, но только после полного штатного отключения через ГП / реестр всего множества компонентов центра «Безопасность».

• XGpuEjectDialog [ B ] — Меню горячего отключения видео-адаптеров

• XboxGameCallableUI [ B ] — The Xbox Live SDK now contains wrapper APIs that support Title Callable UI (TCUI).
TCUI display stock UI on a Windows 10 PC/Mobile device.

• ParentalControls [ B ] — FamilyControl, includes Setup account.

• CBSPreview [ B ] — «CBS» app for online video-episodes and movie playback on Windows 10 Media. Adware.
https://www.onmsft.com/news/cbs-now-universal-windows-10-app-pcs-windows-10-mobile-devices
ПОД ВОПРОСОМ

• LockApp [ ? ] — Штатный контроль блокировки и допуска UWP-приложений.

• AssignedAccessLockApp [ ? ] — Функционал допуска LockApp

• Win32WebViewHost [ ? ] — aka «Desktop App Web Viewer». Part of the integration of UWP into Win32. Requests precise location. Memory leak.
When a Win32 app uses the new web view, entries may show up in various places in settings, notifications, volume mixer, action center, etc.

• FileExplorer [ ? ] — File browser ability for Apps from the Store (like Windows Explorer, but not *.exe programs).
• FilePicker [ ? ] — Browse and open a file ability for Apps from the Store (for edit or send to a contact, but not *.exe programs).

• PinningConfirmationDialog [ ? ] — «Pin to taskbar» call to action. App can ask the user to pin an app to the taskbar.

• AddSuggestedFoldersToLibraryDialog [ ? ] — Меню добавления папок в раздел «Библиотеки»

• InputApp [ A ] — «Touchscreen Keyboard» для планшетов и тачскринов. Может пригодиться и при работе на граф. планшете.

• Cortana [ A ] — Кортана (имеется ввиду, не отключать с помощью «Blackbird» — он это делает слишком радикально)

3 простых шага по исправлению ошибок CAPTUREPICKER.EXE

Файл capturepicker.exe из unknown company является частью unknown product. capturepicker.exe, расположенный в c:\windows\ systemappsmicrosoft .windows .capturepicker_cw5n1h2txyewy\ capturepicker .exe с размером файла 137552 байт, версия файла Unknown version, подпись 39d7630379838b24c329d605b9911832.

В вашей системе запущено много процессов, которые потребляют ресурсы процессора и памяти. Некоторые из этих процессов, кажется, являются вредоносными файлами, атакующими ваш компьютер.
Чтобы исправить критические ошибки capturepicker.exe,скачайте программу Asmwsoft PC Optimizer и установите ее на своем компьютере

1- Очистите мусорные файлы, чтобы исправить capturepicker.exe, которое перестало работать из-за ошибки.

  1. Запустите приложение Asmwsoft Pc Optimizer.
  2. Потом из главного окна выберите пункт «Clean Junk Files».
  3. Когда появится новое окно, нажмите на кнопку «start» и дождитесь окончания поиска.
  4. потом нажмите на кнопку «Select All».
  5. нажмите на кнопку «start cleaning».

2- Очистите реестр, чтобы исправить capturepicker.exe, которое перестало работать из-за ошибки.

3- Настройка Windows для исправления критических ошибок capturepicker.exe:

  1. Нажмите правой кнопкой мыши на «Мой компьютер» на рабочем столе и выберите пункт «Свойства».
  2. В меню слева выберите » Advanced system settings».
  3. В разделе «Быстродействие» нажмите на кнопку «Параметры».
  4. Нажмите на вкладку «data Execution prevention».
  5. Выберите опцию » Turn on DEP for all programs and services . » .
  6. Нажмите на кнопку «add» и выберите файл capturepicker.exe, а затем нажмите на кнопку «open».
  7. Нажмите на кнопку «ok» и перезагрузите свой компьютер.

Всего голосов ( 35 ), 19 говорят, что не будут удалять, а 16 говорят, что удалят его с компьютера.

Как вы поступите с файлом capturepicker.exe?

Некоторые сообщения об ошибках, которые вы можете получить в связи с capturepicker.exe файлом

(capturepicker.exe) столкнулся с проблемой и должен быть закрыт. Просим прощения за неудобство.

(capturepicker.exe) перестал работать.

capturepicker.exe. Эта программа не отвечает.

(capturepicker.exe) — Ошибка приложения: the instruction at 0xXXXXXX referenced memory error, the memory could not be read. Нажмитие OK, чтобы завершить программу.

(capturepicker.exe) не является ошибкой действительного windows-приложения.

(capturepicker.exe) отсутствует или не обнаружен.

CAPTUREPICKER.EXE

Проверьте процессы, запущенные на вашем ПК, используя базу данных онлайн-безопасности. Можно использовать любой тип сканирования для проверки вашего ПК на вирусы, трояны, шпионские и другие вредоносные программы.

процессов:

Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Снимок экрана Screen capture

Начиная с Windows 10 версии 1803 пространство имен Windows.Graphics.Capture предоставляет API-интерфейсы для извлечения кадров из окна отображения или приложения, создания видеопотоков или снимков в рамках формирования интерактивного интерфейса для совместной работы. Starting in Windows 10, version 1803, the Windows.Graphics.Capture namespace provides APIs to acquire frames from a display or application window, to create video streams or snapshots to build collaborative and interactive experiences.

Снимок экрана позволяет разработчикам вызывать безопасный системный интерфейс, чтобы конечные пользователи могли выбрать экран или окно приложения для захвата, после чего систему рисует желтую границу уведомления вокруг активного элемента. With screen capture, developers invoke secure system UI for end users to pick the display or application window to be captured, and a yellow notification border is drawn by the system around the actively captured item. В случае синхронных сеансов захвата желтая граница рисуется вокруг каждого элемента, снимок которого создается. In the case of multiple simultaneous capture sessions, a yellow border is drawn around each item being captured.

API-интерфейсы захвата экрана поддерживаются только на настольных и впечатляющих гарнитурах Windows Mixed Reality. The screen capture APIs are only supported on desktop and Windows Mixed Reality immersive headsets.

Читайте также:  Как узнать когда кончается лицензия windows

В этой статье описывается запись одного изображения окна просмотра или приложения. This article describes capturing a single image of the display or application window. Сведения о кодировании кадров, записанных с экрана в видеофайл, см. в разделе снимок экрана в видео . For information on encoding frames captured from the screen to a video file, see Screen capture to video

Добавление возможности захвата экрана Add the screen capture capability

Для API-интерфейсов, обнаруженных в пространстве имен Windows. Graphics. Capture , требуется объявление общей возможности в манифесте приложения: The APIs found in the Windows.Graphics.Capture namespace require a general capability to be declared in your application’s manifest:

  1. Откройте Package. appxmanifest в Обозреватель решений. Open Package.appxmanifest in the Solution Explorer.
  2. Перейдите на вкладку Возможности. Select the Capabilities tab.
  3. Проверьте видеозапись графических объектов. Check Graphics Capture.

Запуск системного пользовательского интерфейса для создания снимка экрана Launch the system UI to start screen capture

Перед запуском системного пользовательского интерфейса можно проверить, может ли ваше приложение создавать снимки экрана. Before launching the system UI, you can check to see if your application is currently able to take screen captures. Существует несколько причин, из-за которых приложение не может использовать снимок экрана — например, устройство не соответствует требованиям к оборудованию или приложение ориентировано на блочный захват экрана. There are several reasons why your application might not be able to use screen capture, including if the device does not meet hardware requirements or if the application targeted for capture blocks screen capture. Используйте метод IsSupported класса GraphicsCaptureSession, чтобы определить, поддерживается ли снимок экрана UWP: Use the IsSupported method in the GraphicsCaptureSession class to determine if UWP screen capture is supported:

Когда вы убедитесь, что снимок экрана поддерживается, используйте класс GraphicsCapturePicker для вызова интерфейса системного средства выбора. Once you’ve verified that screen capture is supported, use the GraphicsCapturePicker class to invoke the system picker UI. Конечный пользователь применяет этот интерфейс для выбора экрана или окна приложения, из которого требуется делать снимки экрана. The end user uses this UI to select the display or application window of which to take screen captures. Средство выбора вернет элемент GraphicsCaptureItem, который будет использоваться для создания GraphicsCaptureSession: The picker will return a GraphicsCaptureItem that will be used to create a GraphicsCaptureSession:

Поскольку это код пользовательского интерфейса, его необходимо вызывать в потоке пользовательского интерфейса. Because this is UI code, it needs to be called on the UI thread. Если вы вызываете его из кода программной части для страницы приложения (например, MainPage.XAML.CS), это выполняется автоматически, но в противном случае можно принудительно запустить его в ПОТОКЕ пользовательского интерфейса с помощью следующего кода: If you’re calling it from the code-behind for a page of your application (like MainPage.xaml.cs) this is done for you automatically, but if not, you can force it to run on the UI thread with the following code:

Создание пула кадров захвата и сеанса захвата Create a capture frame pool and capture session

С помощью графикскаптуреитем вы создадите DIRECT3D11CAPTUREFRAMEPOOL с устройством D3D, поддерживаемым форматом пикселей (в формате DXGI _ _ B8G8R8A8 _ UNORM), числом нужных кадров (которое может быть любым целым числом) и размером кадра. Using the GraphicsCaptureItem, you will create a Direct3D11CaptureFramePool with your D3D device, supported pixel format (DXGI_FORMAT_B8G8R8A8_UNORM), number of desired frames (which can be any integer), and frame size. Свойство ContentSize класса GraphicsCaptureItem класс можно использовать в качестве размера кадра: The ContentSize property of the GraphicsCaptureItem class can be used as the size of your frame:

В системах с включенным цветом Windows HD формат пикселей содержимого может быть не всегда в _ формате DXGI _ B8G8R8A8 _ UNORM. On systems with Windows HD color enabled, the content pixel format might not necessarily be DXGI_FORMAT_B8G8R8A8_UNORM. Чтобы избежать пересечения пикселей (т. е. захваченного содержимого с нештатным наполнением) при записи HDR-содержимого, рассмотрите возможность использования _ формата DXGI _ R16G16B16A16 _ float для каждого компонента в конвейере записи, включая Direct3D11CaptureFramePool, целевое назначение, например канвасбитмап. To avoid pixel overclipping (i.e. the captured content looks washed out) when capturing HDR content, consider using DXGI_FORMAT_R16G16B16A16_FLOAT for every component in the capturing pipeline, including the Direct3D11CaptureFramePool, the target destination such as CanvasBitmap. Зависит от нужды, может потребоваться дополнительная обработка, например сохранение в формате HDR-содержимого или сопоставление тонов из HDR в SDR. Depends on the need, additional processing such as saving to HDR content format or HDR-to-SDR tone mapping might be required. В этой статье рассматривается запись содержимого SDR. This article will focus on SDR content capturing. Дополнительные сведения см. в статье Использование DirectX с высоким динамическим диапазоном отображения и расширенным цветом. For more information, please see Using DirectX with high dynamic range Displays and Advanced Color.

Затем получите экземпляр класса GraphicsCaptureSession для пула Direct3D11CaptureFramePool, передав GraphicsCaptureItem методу CreateCaptureSession: Next, get an instance of the GraphicsCaptureSession class for your Direct3D11CaptureFramePool by passing the GraphicsCaptureItem to the CreateCaptureSession method:

Если пользователь явно предоставил согласие на захват окна или экрана приложения в системном интерфейсе, GraphicsCaptureItem можно связать с несколькими объектами CaptureSession. Once the user has explicitly given consent to capturing an application window or display in the system UI, the GraphicsCaptureItem can be associated to multiple CaptureSession objects. Таким образом ваше приложение может записывать один и тот же элемент для различных процессов. This way your application can choose to capture the same item for various experiences.

Для одновременного захвата нескольких элементов приложение должно создать сеанса захвата для каждого записываемого элемента. Для этого требуется вызвать интерфейс средства выбора для каждого элемента. To capture multiple items at the same time, your application must create a capture session for each item to be captured, which requires invoking the picker UI for each item that is to be captured.

Получение кадров захвата Acquire capture frames

После создания пула кадров и сеанса захвата, вызовите метод StartCapture метод экземпляра GraphicsCaptureSession, чтобы система начала отправлять кадры захвата вашему приложению: With your frame pool and capture session created, call the StartCapture method on your GraphicsCaptureSession instance to notify the system to start sending capture frames to your app:

Читайте также:  Nvcap maker mac os

Для получения этих кадров захвата, которые являются объектами Direct3D11CaptureFrame, можно использовать событие Direct3D11CaptureFramePool.FrameArrived: To acquire these capture frames, which are Direct3D11CaptureFrame objects, you can use the Direct3D11CaptureFramePool.FrameArrived event:

Не рекомендуется использовать поток пользовательского интерфейса, если это возможно, для FrameArrived, так как это событие вызывается каждый раз, когда доступен новый кадр, что происходит довольно часто. It is recommended to avoid using the UI thread if possible for FrameArrived, as this event will be raised every time a new frame is available, which will be frequent. Если вы решили прослушивать FrameArrived в потоке пользовательского интерфейса, обратите внимание на действия, которые вы выполняете при каждом событии. If you do choose to listen to FrameArrived on the UI thread, be mindful of how much work you’re doing every time the event fires.

Кроме того, вы можете вручную извлекать кадры с помощью метода Direct3D11CaptureFramePool.TryGetNextFrame, пока не получите все нужные кадры. Alternatively, you can manually pull frames with the Direct3D11CaptureFramePool.TryGetNextFrame method until you get all of the frames that you need.

Объект Direct3D11CaptureFrame содержит свойства размер содержимого, Surface и SystemRelativeTime. The Direct3D11CaptureFrame object contains the properties ContentSize, Surface, and SystemRelativeTime. SystemRelativeTime — это время QPC (QueryPerformanceCounter), которое можно использовать для синхронизации с другими элементами мультимедиа. The SystemRelativeTime is QPC (QueryPerformanceCounter) time that can be used to synchronize other media elements.

Кадры захвата процесса Process capture frames

Каждый кадр Direct3D11CaptureFramePool извлекается при вызове TryGetNextFrame и возвращается в соответствии с временем жизни объекта Direct3D11CaptureFrame. Each frame from the Direct3D11CaptureFramePool is checked out when calling TryGetNextFrame, and checked back in according to the lifetime of the Direct3D11CaptureFrame object. Для собственных приложений освобождения объекта Direct3D11CaptureFrame достаточно для возврата кадра в пул. For native applications, releasing the Direct3D11CaptureFrame object is enough to check the frame back in to the frame pool. Для управляемых приложений рекомендуется использовать метод Direct3D11CaptureFrame.Dispose (Close на C++). For managed applications, it is recommended to use the Direct3D11CaptureFrame.Dispose (Close in C++) method. Direct3D11CaptureFrame реализует интерфейс IClosable, который проецируется как IDisposable для вызывающих объектов C#. Direct3D11CaptureFrame implements the IClosable interface, which is projected as IDisposable for C# callers.

Приложения не должны сохранять ссылки на объекты Direct3D11CaptureFrame и не должны сохранять ссылки на базовую поверхность Direct3D после возврата кадра. Applications should not save references to Direct3D11CaptureFrame objects, nor should they save references to the underlying Direct3D surface after the frame has been checked back in.

При обработке кадра приложениям рекомендуется получать блокировку ID3D11Multithread на устройстве, которое связано с объектом Direct3D11CaptureFramePool. While processing a frame, it is recommended that applications take the ID3D11Multithread lock on the same device that is associated with the Direct3D11CaptureFramePool object.

Размер базовой поверхности Direct3D всегда равен размеру, указанному при создании (или повторном создании) Direct3D11CaptureFramePool. The underlying Direct3D surface will always be the size specified when creating (or recreating) the Direct3D11CaptureFramePool. Если содержимое больше кадра, оно обрезается по размеру кадра. If content is larger than the frame, the contents are clipped to the size of the frame. Если содержимое меньше кадра, остальная часть кадра содержит неопределенные данные. If the content is smaller than the frame, then the rest of the frame contains undefined data. Приложениям рекомендуется копировать прямоугольник с помощью свойства ContentSize для этого кадра Direct3D11CaptureFrame, чтобы не отображать неопределенное содержимое. It is recommended that applications copy out a sub-rect using the ContentSize property for that Direct3D11CaptureFrame to avoid showing undefined content.

Сделать снимок экрана Take a screenshot

В нашем примере мы преобразуем каждый Direct3D11CaptureFrame в канвасбитмап, который является частью API Win2D. In our example, we convert each Direct3D11CaptureFrame into a CanvasBitmap, which is part of the Win2D APIs.

После получения канвасбитмап можно сохранить его как файл изображения. Once we have the CanvasBitmap, we can save it as an image file. В следующем примере мы сохраняем его как PNG-файл в папке сохраненные рисунки пользователя. In the following example, we save it as a PNG file in the user’s Saved Pictures folder.

Реагирование на изменение размера элемента или потерю устройства React to capture item resizing or device lost

Во время захвата приложениям может потребоваться изменить аспекты Direct3D11CaptureFramePool. During the capture process, applications may wish to change aspects of their Direct3D11CaptureFramePool. В том числе может понадобиться предоставить новое устройство Direct3D, изменить размер буферов кадров или даже изменить количество буферов в пуле. This includes providing a new Direct3D device, changing the size of the frame buffers, or even changing the number of buffers within the pool. В каждом из этих случаев рекомендуется использовать метод Recreate объекта Direct3D11CaptureFramePool. In each of these scenarios, the Recreate method on the Direct3D11CaptureFramePool object is the recommended tool.

При вызове Recreate удаляются все существующие кадры. When Recreate is called, all existing frames are discarded. Это необходимо для предотвращения передачи кадров, базовые поверхности Direct3D которых принадлежат устройству, которое больше недоступно приложению. This is to prevent handing out frames whose underlying Direct3D surfaces belong to a device that the application may no longer have access to. Поэтому может быть логичным обработать все ожидающие кадры перед вызовом Recreate. For this reason, it may be wise to process all pending frames before calling Recreate.

Сборка Putting it all together

В следующем фрагменте кода приведен полный пример реализации снимка экрана в приложении UWP. The following code snippet is an end-to-end example of how to implement screen capture in a UWP application. В этом примере у нас есть две кнопки в интерфейсной части: один вызывает Button_ClickAsync, а другой вызывает ScreenshotButton_ClickAsync. In this sample, we have two buttons in the front-end: one calls Button_ClickAsync, and the other calls ScreenshotButton_ClickAsync.

В этом фрагменте кода используется Win2D— библиотека для отрисовки двухмерной графики. This snippet uses Win2D, a library for 2D graphics rendering. Сведения о том, как настроить проект, см. в их документации. See their documentation for information about how to set it up for your project.

Оцените статью