Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Havenevak

Problema com API PrintWindow

Recommended Posts

Estou com um projeto que compartilha janelas tipo o sistema de compartilhamento de janela do skype
so que estou tento problemas com algumas janelas expecificas como google chrome opera etc
comecei com base no exemplo de captura de janela da print abaixo o mesmo captura qualquer tipo de janela aberta
so acontece este problema com o google chrome e o opera


zDNijDG.png

Hospedei a soucer do exemple que usei se alguem quiser da uma olhada segue o link
https://www.sendspace.com/file/lr4i9w

Função utilizada pra tirar a print


function zPrintWindow(hHWND: HWND; Bmp: TBitmap): Boolean;

var

  r: TRect;

begin

  result := False;

  GetWindowRect(hHWND, r) ;

  bmp.Width := r.Right - r.Left;

  bmp.Height := r.Bottom - r.Top;

  result := PrintWindow(hHWND, Bmp.Canvas.Handle, 0) ;

end;



Ja usei o Winspector pra pega o nome das class do chrome pra testa tirar a print

4HTZpSs.png

Cheguei a este codigo:


function zPrintWindow(hHWND: HWND; Bmp: TBitmap): Boolean;

var

  r: TRect;

  H1, H2: THandle;

begin

H1 := FindWindow('Chrome_WidgetWin_1', nil);

H2 := FindWindowEx(H1,0,'Chrome_RenderWidgetHostHWND',nil);

  result := False;

  GetWindowRect(hHWND, r) ;

  bmp.Width := r.Right - r.Left;

  bmp.Height := r.Bottom - r.Top;

  result := PrintWindow(H2 , Bmp.Canvas.Handle, 0) ;

end;



E não tive sucesso.
ja faz semanas que estou tentando resolver isso tentei tirar print
por coordenadas da tela pra pega so a janela porem se tiver uma janela na frente
ela sai na print tambem nao e isso que eu quero funciona com todas janelas do windows menos
esses navegadores se alguem poder me ajuda ficarei muito grato desde ja obrigado.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.