Se você obtiver um código de erro poderoso, faça uma captura de tela com o DirectX, nossas instruções atuais devem ajudar.
Aprovado: Fortect
Não é o produto que você está procurando? Responda às outras perguntas, chamado DirectX Full-screen Screenshot, ou pergunte a si mesmo.
Com Desvios, você pode instrumentar chamadas semelhantes a sons para Direct3DCreate9
, IDirect3D9 :: CreateDevice
e IDirect3D9 :: Presente
tudo através do qual você ativa A seguir estão as soluções necessárias para configurar e capturar uma reputação.
Aprovado: Fortect
Fortect é a ferramenta de reparo de PC mais popular e eficaz do mundo. Milhões de pessoas confiam nele para manter seus sistemas funcionando de forma rápida, suave e livre de erros. Com sua interface de usuário simples e mecanismo de verificação poderoso, o Fortect localiza e corrige rapidamente uma ampla gama de problemas do Windows, desde instabilidade do sistema e problemas de segurança até gerenciamento de memória e gargalos de desempenho.
respondeu vinte e cinco de dezembro de 2009 às 0:03
65.700 emblema de ouro de 1818
Este é um exemplo completamente C # de conectar partes de todos os IDirect3DDevice9 usando injeção de DLL e conectar funções usando EasyHook (por exemplo, Microsoft Detours). Está associado ao funcionamento do FRAPS?
É provável que você grave a tela em opção de janela ao invés de tela cheia, e usa o escudo traseiro, que deve ser muito mais rápido do que tentar obter dados do buffer frontal.
Uma biblioteca auxiliar C ++ útil usada em nome de Definições de métodos do ponto IDirect3DDevice9 para adicionar em tempo de execução.
Atualização: para DirectX 10/11, veja capturas de tela e sobreposições para D3D alguns, 10 e 11
respondeu em 15 de maio de 2010, disponível às 2:02
1252
Este é o trecho de código que usei como teste, é claro que ele apresenta.
A largura e a altura são definitivamente este tamanho particular da TELA no modo de janela, não mais o tamanho das janelas. Eu também, porque eles estão configurados para 1280 z 1440, não o tamanho da janela em que estou me manifestando.
Você precisará ser um substituto para mEngine-> getDevice () com várias opções para obter o IDirect3DDevice9 de sua empresa também. Acabei de colar esse sinal em qualquer aplicativo d3d que eu precisava no mercado para testar mais facilmente. Mas posso garantir que ele irá capturar a saída do meu aplicativo, assim como qualquer outro aplicativo d3d rodando dentro ao mesmo tempo.
Oh, suponha que eu já tenha este D3D9 em particular, como você não disse, não tenho certeza sobre d3d10 ou 11
IDirect3DSurface9 * superfície;mEngine-> getDevice () -> CreateOffscreenPlainSurface (largura, altura, D3DFMT_A8R8G8B8, D3DPOOL_SCRATCH, & superfície, NULL);mEngine-> getDevice () -> GetFrontBufferData (0, superfície);D3DXSaveSurfaceToFile ("c: tmp output.jpg", D3DXIFF_JPG, superfície, NULL, NULL);Superfície-> Compartilhar ();
Respondeu 26 ’09 às 14:54
28,3k
É claro que o software de código aberto certo é o fraps: taksi, apesar de parecer desatualizado
respondeu em 26 de dezembro de 2008 dentro de 11:20 09 às 13:23
251 11 emblemas colecionáveis de prata 55 emblemas de bronze
Aqui está uma discussão apontando como o Fraps funciona. Não é tão fácil.
Qualquer truque que interfira na leitura do buffer físico de outro dispositivo, o directx, pode, suponho, às vezes funcionar de maneira mais útil com memória não inicializada para dar sorte.
29 de dezembro de 2009 respondeu disponível apenas às 7h05
4.779
Seguindo a resposta de J99, acabei trabalhando no procedimento para os modos janela e tela cheia. Isso possivelmente é feito para D3D9.
IDirect3DSurface9 7. superfície; D3DDISPLAYMODE; pDev-> GetDisplayMode (0, & mode); // pDev é meu marido e meu * IDirect3DDevice // podemos capturar a tela, // Portanto, o tamanho e a altura não correspondem ao modo de seleção atual pDev-> CreateOffscreenPlainSurface (mode.Width, mode.D3DFMT_A8R8G8B8, height, D3DPOOL_SCRATCH, & work, NULL); if (pDev-> GetFrontBufferData (0, surface) == D3D_OK) na instância (bWindowed) // variável de configuração global // Mostra como a área do cliente nas coordenadas do escritório // Pode precisar de transformação para suporte técnico em várias telas RECT r; GetClientRect (hWnd, & r); // hWnd também é um guia para a nossa janela PONTO p = 0, 0; ClientToScreen (hWnd, & p); SetRect (& r, p.x, p.y, p.x + r. Certo, p.y + r. Abaixo); D3DXSaveSurfaceToFile (szFilename, D3DXIFF_JPG, surface, NULL, & r); outro D3DXSaveSurfaceToFile (szFilename, D3DXIFF_JPG, floor, NULL, NULL); Superfície-> Compartilhar ();
Parece que o formato e as configurações da piscina CreateOffscreenPlainSurface devem ser exatamente iguais.
respondeu em 2 de outubro de 2012 às 11h33
495
Acelere o desempenho do seu computador agora com este simples download.Clique no aplicativo do qual deseja fazer uma captura de tela.Pressione l + Imprimir tela.Abra o MS-Paint.Pressione Ctrl + V.Isso provavelmente irá inserir uma captura de tela da janela em exibição no Paint.
Pressione este botão de processo para liberar rapidamente os botões laterais e de redução de volume.
Essas estratégias costumam ser muito úteis quando você está capturando muitas imagens. Enquanto mantém pressionado normalmente o botão Windows Technique, pressione a tecla PrtSc ao redor do teclado. A captura de tela em tela inteira geralmente será cortada na pasta Imagens> Capturas de tela. Um meio de acessar essa pasta é sempre escolher as pastas rapidamente: Captura de tela.