Capturando a tela 2
Pessoal como viram no meu primiro topico estava querendo saber como gravar a imagem da tela como se fosse um printscreen, mas agora gostaria de saber no seguinte aspecto:
com um Timer eu vou salvando as imagens a cada 2 minutos em uma pasta so que desta vez eu quero que em vez de ir salvando o arquivo da imagem eu preciso que ele jogue direto para o form e va colocando as imagens em sequencia, quando eu clikar para parar de copiar a imagem eu gostaria que quando clika-se em cima de uma imagem que ela maximiza-se e quando eu clika-se novamente que volta-se ao normal no form
se aguem sober como se faz porfavor não exite em postar, toda informação sera util.
Desde de ja agradeço
[/b]
com um Timer eu vou salvando as imagens a cada 2 minutos em uma pasta so que desta vez eu quero que em vez de ir salvando o arquivo da imagem eu preciso que ele jogue direto para o form e va colocando as imagens em sequencia, quando eu clikar para parar de copiar a imagem eu gostaria que quando clika-se em cima de uma imagem que ela maximiza-se e quando eu clika-se novamente que volta-se ao normal no form
se aguem sober como se faz porfavor não exite em postar, toda informação sera util.
Desde de ja agradeço
[/b]
Marvel
Curtidas 0
Respostas
Dor_poa
10/01/2008
// Função que realiza o PRINTScren
Function PrintScreeNatela(NomeArquivo:String):Boolean;
procedure Conversor_Bmp_Jpg(FileName: string);
procedure Conversor_Bmp_Jpg(FileName: string);
var
Jpg: TJpegImage;
Stm: TMemoryStream;
Bmp: TBitmap;
begin
Try
if FileExists(FileName) then
begin
Bmp := TBitmap.Create;
Bmp.LoadFromFile(FileName);
Jpg := TJpegImage.Create;
Jpg.Assign(Bmp);
Jpg.Compress;
Stm := TMemoryStream.Create;
Jpg.SaveToStream(Stm);
Stm.Position := 0;
Stm.SaveToFile(ChangeFileExt(FileName, ´.jpg´));
Stm.Free;
Jpg.Free;
Bmp.Free;
DeleteFile(Filename);
end;
Except
End;
end;
Function PrintScreeNatela(NomeArquivo:String):Boolean;
var
Bmp
:TBitmap;
Tetativas
:Integer;
begin
Result := False;
If Pos(´:´, NomeArquivo) = 0 Then
Begin
NomeArquivo := ExtractFilePath(Application.ExeName)+NomeArquivo;
End;
If FileExists(NomeArquivo) Then
DeleteFile(NomeArquivo);
Tetativas := 0;
Repeat
Try
Bmp := TBitmap.Create;
Keybd_Event(VK_Snapshot,0, 0, 0);
Bmp.LoadFromClipboardFormat(CF_BitMap, Clipboard.GetAsHandle(CF_Bitmap), 0);
Bmp.SaveToFile(NomeArquivo);
Bmp.Free;
Sleep(500);
Conversor_Bmp_Jpg(NomeArquivo);
Tetativas := 6;
Sleep(250);
Except
Inc(Tetativas);
Sleep(100);
End;
Until (Tetativas > 3);
// ShowMessage(´Arquivo exportada para ´ + ChangeFileExt(NomeArquivo, ´.jpg´));
Result := True;
End;
Dessa forma vc esta gerando o arquivo a cada X tempo determinado no intervalo!
procedure TForm1.Timer1Timer(Sender: TObject);
begin
//NumeroFoto e uma variavel que deve se iniciar em 1
PrintScreeNatela(´c:\foto´ + IntToStr(NumeroFoto)+ ´.jpg´);
Inc(NumeroFoto);
end;
Espero ter lhe ajudado!
Function PrintScreeNatela(NomeArquivo:String):Boolean;
procedure Conversor_Bmp_Jpg(FileName: string);
procedure Conversor_Bmp_Jpg(FileName: string);
var
Jpg: TJpegImage;
Stm: TMemoryStream;
Bmp: TBitmap;
begin
Try
if FileExists(FileName) then
begin
Bmp := TBitmap.Create;
Bmp.LoadFromFile(FileName);
Jpg := TJpegImage.Create;
Jpg.Assign(Bmp);
Jpg.Compress;
Stm := TMemoryStream.Create;
Jpg.SaveToStream(Stm);
Stm.Position := 0;
Stm.SaveToFile(ChangeFileExt(FileName, ´.jpg´));
Stm.Free;
Jpg.Free;
Bmp.Free;
DeleteFile(Filename);
end;
Except
End;
end;
Function PrintScreeNatela(NomeArquivo:String):Boolean;
var
Bmp
:TBitmap;
Tetativas
:Integer;
begin
Result := False;
If Pos(´:´, NomeArquivo) = 0 Then
Begin
NomeArquivo := ExtractFilePath(Application.ExeName)+NomeArquivo;
End;
If FileExists(NomeArquivo) Then
DeleteFile(NomeArquivo);
Tetativas := 0;
Repeat
Try
Bmp := TBitmap.Create;
Keybd_Event(VK_Snapshot,0, 0, 0);
Bmp.LoadFromClipboardFormat(CF_BitMap, Clipboard.GetAsHandle(CF_Bitmap), 0);
Bmp.SaveToFile(NomeArquivo);
Bmp.Free;
Sleep(500);
Conversor_Bmp_Jpg(NomeArquivo);
Tetativas := 6;
Sleep(250);
Except
Inc(Tetativas);
Sleep(100);
End;
Until (Tetativas > 3);
// ShowMessage(´Arquivo exportada para ´ + ChangeFileExt(NomeArquivo, ´.jpg´));
Result := True;
End;
Dessa forma vc esta gerando o arquivo a cada X tempo determinado no intervalo!
procedure TForm1.Timer1Timer(Sender: TObject);
begin
//NumeroFoto e uma variavel que deve se iniciar em 1
PrintScreeNatela(´c:\foto´ + IntToStr(NumeroFoto)+ ´.jpg´);
Inc(NumeroFoto);
end;
Espero ter lhe ajudado!
GOSTEI 0
Marvel
10/01/2008
Olá Dor_poa, muito obrigado pela ajuda, pois isso ja faz um tempo que tenho procurado e tenho achado pouco material sobre o assunto. fiz o teste com seu codigo e ele realiza exatamente o que eu preciso.
novamente agradeço
novamente agradeço
GOSTEI 0