SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Drache en Lunes 24 de Abril de 2006, 02:27

Título: Copiar Al Portapapel Una Impresión De Pantalla
Publicado por: Drache en Lunes 24 de Abril de 2006, 02:27
Quiero tomar impresiones de pantalla, tal como si lo hiciera con el boton PrtSc
pero de manera automática, a intervalos de tiempo.

Ya he intentado diferentes eventos y funciones pero sigue sin darme resultados.

por ejemplo:

Clipboard()->Assign(Image->Picture);

Esto es correcto, pero al querer asignarle el Screen, ahi no me funciona

Clipboard()->Assign(Screen);

O también...

Screen->CopyToClipboard();

O en los eventos de OnKeyPress

if (Key == VK_RETURN) Key =VK_SNAPSHOT;

Si alguien tiene idea de alguna función que pueda usar,  que me lo diga porfavor

saludos
Título: Re: Copiar Al Portapapel Una Impresión De Pantalla
Publicado por: Drache en Jueves 27 de Abril de 2006, 00:36
bueno, a estas alturas, este post ya tiene dias sin respuesta.

agradeceria si alguien puede aconsejarme, si el titulo no es descriptivo, o que más puedo hacer yo, para ayudar a que respondan mi duda.

bueno, no es un problema de programación en si, pero si alguien conoce una función que pueda utilizar, me vendria muy bien que me la compartan.

saludos
Título: Re: Copiar Al Portapapel Una Impresión De Pantalla
Publicado por: _Viktor en Martes 9 de Mayo de 2006, 22:37
Buenas, para guardar una "impresión" del escritorio en un jpg por ejemplo se hace de la siguiente manera:

Código: Text
  1.  
  2. HDC dc = GetDC(0);
  3. Graphics::TCanvas *ScreenCanvas = new Graphics::TCanvas;
  4. ScreenCanvas->Handle = dc;
  5.  
  6. TJPEGImage *JImage = new TJPEGImage;
  7. Image1->Picture->Bitmap->Width = Screen->Width;
  8. Image1->Picture->Bitmap->Height= Screen->Height;
  9. TRect rect = Rect(0,0,Screen->Width, Screen->Height);
  10. Image1->Picture->Bitmap->Canvas->CopyRect(rect,   ScreenCanvas, rect);
  11. JImage->Assign(Image1->Picture->Graphic);
  12. JImage->CompressionQuality = 19;
  13. JImage->Compress();
  14.  
  15. JImage->SaveToFile("cap.jpg");
  16.  

Cualquier duda ya empezaré a revisar nuevamente el foro más seguido. Saludos
Título: Re: Copiar Al Portapapel Una Impresión De Pantalla
Publicado por: Drache en Domingo 14 de Mayo de 2006, 17:58
uff gracias _Viktor ese codigo va de maravilla
ya estaba pensando que no lo iva a hacer nunca xD

y hasta con un jpg salvado en la carpeta del executable!!
valio la pena la espera  :smartass:
Título: Re: Copiar Al Portapapel Una Impresión De Pantalla
Publicado por: _Viktor en Lunes 15 de Mayo de 2006, 22:01
No hay problema... para eso estamos ;)