Olá! .. Estou montando uma lan house aqui no bairro .. e quero ter o maximo de controle doque os usuários fazem nos computadores.. Então.. montei um pequeno aplicativo que pega o nome da janela ativa no windows e começa a tirar print screens.. O meu problema é.. que o código que estou a usar, os prints são salvos sem formato e com 5 MB cada.. então quero saber, como faço para salvar os prints em .gif ou .jpg.. Os códigos que estou a uasr: { Tirar print screen } // 1. Obtem o handle e a posição do mouse function GetCursorInfo2: TCursorInfo; var hWindow: HWND; pt: TPoint; pIconInfo: TIconInfo; dwThreadID, dwCurrentThreadID: DWORD; begin Result.hCursor := 0; ZeroMemory(@Result, SizeOf(Result)); // Encontra a janela "mae" do mouse if GetCursorPos(pt) then begin Result.ptScreenPos := pt; hWindow := WindowFromPoint(pt); if IsWindow(hWindow) then begin // Pega a thread do owner do mouse dwThreadID := GetWindowThreadProcessId(hWindow, nil); // Pega o id da thread atual dwCurrentThreadID := GetCurrentThreadId; if (dwCurrentThreadID <> dwThreadID) then begin if AttachThreadInput(dwCurrentThreadID, dwThreadID, True) then begin // Obtem o handle do cursor Result.hCursor := GetCursor; AttachThreadInput(dwCurrentThreadID, dwThreadID, False); end; end else begin Result.hCursor := GetCursor; end; end; end; end; // 2. Captura tela function CaptureScreen: TBitmap; var DC: HDC; ABitmap: TBitmap; MyCursor: TIcon; CursorInfo: TCursorInfo; IconInfo: TIconInfo; begin // captura tela DC := GetDC(GetDesktopWindow); ABitmap := TBitmap.Create; try ABitmap.Width := GetDeviceCaps(DC, HORZRES); ABitmap.Height := GetDeviceCaps(DC, VERTRES); // BitBlt on our bitmap BitBlt(ABitmap.Canvas.Handle, 0, 0, ABitmap.Width, ABitmap.Height, DC, 0, 0, SRCCOPY); // Cria icone temporario MyCursor := TIcon.Create; try // Devolve informação do cursor CursorInfo := GetCursorInfo2; if CursorInfo.hCursor <> 0 then begin MyCursor.Handle := CursorInfo.hCursor; GetIconInfo(CursorInfo.hCursor, IconInfo); // Desenha o cursor no bmp ABitmap.Canvas.Draw(CursorInfo.ptScreenPos.X - IconInfo.xHotspot, CursorInfo.ptScreenPos.Y - IconInfo.yHotspot, MyCursor); end; finally // limpa tudo MyCursor.ReleaseHandle; MyCursor.Free; end; finally ReleaseDC(GetDesktopWindow, DC); end; Result := ABitmap; end; { Salvar print screens } procedure TForm1.Timer1Timer(Sender: TObject); Var TempStr : string; begin Image1.Picture.Assign(CaptureScreen); TempStr := FormatDateTime('hh-mm-ss',now); Image1.Picture.SaveToFile('C:\prints\'+TempStr); // Salva os prints end; Lembrando a vocês que estou usando um código para pegar o nome da URL ativa.. ele pega e ativar o Timer1.. acho que não é necessario eu mostrar o código aqui. Quero pedir tambem, mil desculpas por adcionar os códigos assim.. não estou conseguindo adcionar o CODEBOX ou SPOILER .. Ele da o Error 404.