Если вы получили код ошибки, сделайте снимок экрана с помощью DirectX, сегодняшние инструкции вам помогут.
Одобрено: Fortect
Не тот продукт, который вам нужен? Ответьте на другие вопросы, называемые полноэкранным снимком DirectX, или спросите себя.
С помощью обходных путей вы можете инструментальные вызовы, аналогичные вызовам, которые будут использовать Direct3DCreate9
, IDirect3D9 :: CreateDevice
и просто IDirect3D9 :: Present
, в котором затем вы активируете. Ниже приведены процессы, необходимые для настройки и захвата изображения.
Одобрено: Fortect
Fortect — самый популярный и эффективный в мире инструмент для ремонта ПК. Миллионы людей доверяют ему обеспечение быстрой, бесперебойной и безошибочной работы своих систем. Благодаря простому пользовательскому интерфейсу и мощному механизму сканирования Fortect быстро находит и устраняет широкий спектр проблем Windows — от нестабильности системы и проблем с безопасностью до проблем с управлением памятью и производительностью.
а>
ответ дан 26 дек.2009 г. при 0:03
65 700
Это действительно пример C # соединения частей IDirect3DDevice9 с помощью внедрения DLL и подключения функций с помощью EasyHook (например, Microsoft Detours). Связано ли это с функционированием FRAPS?
Это позволяет вам записывать экран в оконном режиме, а не в полноэкранном, и использовать задний буфер, что действительно намного быстрее, чем попытки получить факты из переднего буфера.
Полезная вспомогательная библиотека C ++, используемая для определения методов объекта IDirect3DDevice9, добавляемых во время выполнения.
Обновление: для DirectX 10/11 взгляните на скриншоты и оверлеи для D3D 9, 10 и 11
Создан 15 мая ’10 в 5: 022010-05-15 05:02
1252
Это фрагмент кода, который я использовал в качестве теста, он, конечно, работает.
Ширина и высота – это определенно размер, связанный с ЭКРАНОМ в оконном режиме, а не размер окон. Я тоже, потому что для этих видов продуктов установлено значение 1280 x 1440, а не конкретный размер окна, в которое я выполняю рендеринг.
Вам нужно будет заменить mEngine-> getDevice (), предлагая несколько вариантов для получения вашего IDirect3DDevice9, потому что это хорошо. Я просто вставил этот код в приложение d3d, которое мне нужно было протестировать с меньшими усилиями. Но я могу заверить вас, что он, вероятно, захватит вывод этого приложения, а также почти любого другого приложения d3d, работающего в это самое время.
О, предположим, у меня это обозначено как D3D9, как вы не сказали, я не особо разбираюсь в d3d10 или 11
IDirect3DSurface9 3. поверхность;mEngine-> getDevice () -> CreateOffscreenPlainSurface (ширина, высота, D3DFMT_A8R8G8B8, D3DPOOL_SCRATCH, & поверхность, NULL);mEngine-> getDevice () -> GetFrontBufferData (0, поверхность);D3DXSaveSurfaceToFile ("c: tmp output.jpg", D3DXIFF_JPG, поверхность, NULL, NULL);Поверхность-> Поделиться ();
Ответ дан 26 2010 в 14:54
28.3k 1616 б / у значков для часов 7777 серебряных знаков 122122 бронзовых знака
Конечно, есть исходное ПО для разблокировки, такое как fraps: taksi, хотя оно и устарело
Создан 26 дек.
251
Вот обсуждение того, как работает Fraps. Это не так просто.
Любая уловка a мешает чтению внешнего буфера другого устройства, directx, может, я полагаю, иногда лучше всего работает с неинициализированной памятью на удачу.
29 дек. ’09 ответил только в 7:05
4 779
После ответа J99 я закончил работу над кодом, предназначенным для оконного и полноэкранного режимов. Это тоже нужно сделать для D3D9.
IDirect3DSurface9 * поверхность; D3DDISPLAYMODE; pDev-> GetDisplayMode (0, & режим); // pDev - это обычно мой муж и мое * IDirect3DDevice // они могут снимать весь экран, // Следовательно, размер и высота не соответствуют текущему режиму выбора pDev-> CreateOffscreenPlainSurface (mode.Width, mode.D3DFMT_A8R8G8B8, height, D3DPOOL_SCRATCH, & surface, NULL); если (pDev-> GetFrontBufferData (0, поверхность) == D3D_OK) if (bWindowed) // Международная переменная конфигурации // Отображаем тему клиента в офисных координатах // Может потребоваться преобразование для поддержки большего количества экранов RECT r; GetClientRect (hWnd, & r); // hWnd также является дескриптором окна нашей компании ТОЧКА = 0, 0; ClientToScreen (hWnd, & p); SetRect (& r, p.x, p.y, p.x + r. Справа, p.y + r. Внизу); D3DXSaveSurfaceToFile (szFilename, D3DXIFF_JPG, поверхность, NULL, & r); Другая D3DXSaveSurfaceToFile (szFilename, D3DXIFF_JPG, floor, NULL, NULL); Поверхность-> Поделиться ();
Похоже, файлы и настройки пула CreateOffscreenPlainSurface должны быть совершенно одинаковыми.
заявила 2 октября 2012 г. в 11:33
495
Повысьте производительность вашего компьютера с помощью этой простой загрузки. г.Щелкните приложение, для которого хотите сделать снимок экрана.Нажмите t + Print Screen.Откройте MS-Paint.Нажмите Ctrl + V.Скорее всего, это поместит внутри снимок экрана окна, отображаемого в Paint.
Нажмите эту кнопку напрямую, чтобы быстро отпустить боковые кнопки и кнопки уменьшения громкости.
Этот метод обычно очень полезен, когда вы делаете скриншоты целиком. Удерживая нажатой кнопку Windows Technique, нажмите клавишу PrtSc на вашем персональном компьютере. Полноэкранный снимок экрана будет вырезан внутри папки «Изображения»> «Снимки экрана». Один из способов войти в эту папку – всегда быстро находить файлы: Снимок экрана.