Ajuda com função Printscreen
Saudações à todos os companheiros de trabalho da área Delphi,
http://forum.devmedia.com.br/viewtopic.php?t=61370&sid=b711bae6777230a684e8fe2e161c82a6
Estou com dúvidas de onde aplicar a váriável Desktop como sendo BitMap, como citada neste post.
Alguém poderia me ajudar?
Tentei adaptar a função que tira printscreen comum, mas vejo que está meio diferente a parte do código das cordenadas do exemplo feito no post mencionado acima.
Agradeço a ajuda!
http://forum.devmedia.com.br/viewtopic.php?t=61370&sid=b711bae6777230a684e8fe2e161c82a6
Estou com dúvidas de onde aplicar a váriável Desktop como sendo BitMap, como citada neste post.
Alguém poderia me ajudar?
Tentei adaptar a função que tira printscreen comum, mas vejo que está meio diferente a parte do código das cordenadas do exemplo feito no post mencionado acima.
Agradeço a ajuda!
Luiz Eduardo
Curtidas 0
Respostas
Claudia Nogueira
05/12/2012
Tenta assim.
Coloca um TImage no Form e muda a propriedade Stretch pra True.
Coloca um botão pra testar o seguinte código:
Coloca um TImage no Form e muda a propriedade Stretch pra True.
Coloca um botão pra testar o seguinte código:
var
BackgroundCanvas: TCanvas;
DC: hDC;
begin
Image1.Picture.Bitmap.Width := Screen.Width;
Image1.Picture.Bitmap.Height := Screen.Height;
DC := GetDC(0);
try
BackgroundCanvas := TCanvas.Create;
try
BackgroundCanvas.Lock;
try
BackgroundCanvas.Handle := DC;
Image1.Canvas.CopyRect(Rect(0, 0, Screen.Width, Screen.Height), BackgroundCanvas,
Rect(0, 0, Screen.Width, Screen.Height));
finally
BackgroundCanvas.Unlock;
end;
finally
BackgroundCanvas.Free;
end;
finally
ReleaseDC(0, DC);
end;
end;
GOSTEI 0
Luiz Eduardo
05/12/2012
Tenta assim.
Coloca um TImage no Form e muda a propriedade Stretch pra True.
Coloca um botão pra testar o seguinte código:
Coloca um TImage no Form e muda a propriedade Stretch pra True.
Coloca um botão pra testar o seguinte código:
var
BackgroundCanvas: TCanvas;
DC: hDC;
begin
Image1.Picture.Bitmap.Width := Screen.Width;
Image1.Picture.Bitmap.Height := Screen.Height;
DC := GetDC(0);
try
BackgroundCanvas := TCanvas.Create;
try
BackgroundCanvas.Lock;
try
BackgroundCanvas.Handle := DC;
Image1.Canvas.CopyRect(Rect(0, 0, Screen.Width, Screen.Height), BackgroundCanvas,
Rect(0, 0, Screen.Width, Screen.Height));
finally
BackgroundCanvas.Unlock;
end;
finally
BackgroundCanvas.Free;
end;
finally
ReleaseDC(0, DC);
end;
end;
Obrigado Claudia, mas a função acima só faz redimencionar o printscreen (tela cheia) de tamanho, e não pega só um determinado item, como te disse anteriormente.
Exemplo: queria fazer uma função que tirasse um printscreen na tela, apenas do logo do site Devmedia; entendeu? ( de uma área demarcada na tela em outras palavras).
Já testei a função de printscreen tradicioanal (inclusive eu fazendo adaptações nela), mas até o presente momento, sem sucesso para este fim.
Espero que você ou alguém aqui possa me ajudar.
Aguardo.
GOSTEI 0