tomar pantalla las laptop hacer guardan donde computadora como capturas captura windows screenshot

las - ¿Cómo puedo guardar una captura de pantalla directamente en un archivo en Windows?



como tomar captura de pantalla en computadora (20)

Además de instalar un programa de captura de pantalla, que recomiendo, la mejor manera de hacerlo es usar el método estándar Print Screen, luego abrir Microsoft Office Picture Manager y simplemente pegar la captura de pantalla en el área blanca del directorio que desee. Creará un mapa de bits que puede editar o guardar, como un formato diferente.

En Windows XP, puede presionar Alt-PrintScreen para copiar una imagen de la ventana activa, o Ctrl-PrintScreen para copiar una imagen del escritorio completo.

Esto se puede pegar en aplicaciones que aceptan imágenes: Photoshop, Microsoft Word, etc.

Me pregunto: ¿hay alguna forma de guardar la captura de pantalla directamente en un archivo? ¿ Realmente tengo que abrir un programa de imagen, como Paint.net o Photoshop, simplemente para pegar una imagen y luego guardarla?


Dropbox ahora proporciona el gancho para hacer esto automágicamente. Si obtiene una cuenta de Dropbox gratuita e instala la aplicación de la computadora portátil, cuando presione PrtScr, Dropbox le dará la opción de almacenar automáticamente todas las capturas de pantalla en su carpeta de Dropbox.


Es posible:

  1. Presione Alt PrintScreen
  2. Abra una carpeta
  3. Haga clic derecho -> pegar captura de pantalla

Ejemplo:

La ventana de resultados de la prueba está abierta, tome una captura de pantalla. Abrir C: / Benchmarks Clic derecho -> Pegar captura de pantalla Aparece un archivo llamado screenshot00x.jpg, con el texto screenshot00x seleccionado. Escriba Overclock5

Eso es. No es necesario abrir nada. Si no escribe nada, el nombre predeterminado permanece.


Esto lo hará en Delphi. Tenga en cuenta el uso de la función BitBlt, que es una llamada API de Windows, no algo específico de Delphi.

Editar: uso de ejemplo agregado

function TForm1.GetScreenShot(OnlyActiveWindow: boolean) : TBitmap; var w,h : integer; DC : HDC; hWin : Cardinal; r : TRect; begin //take a screenshot and return it as a TBitmap. //if they specify "OnlyActiveWindow", then restrict the screenshot to the //currently focused window (same as alt-prtscrn) //Otherwise, get a normal screenshot (same as prtscrn) Result := TBitmap.Create; if OnlyActiveWindow then begin hWin := GetForegroundWindow; dc := GetWindowDC(hWin); GetWindowRect(hWin,r); w := r.Right - r.Left; h := r.Bottom - r.Top; end //if active window only else begin hWin := GetDesktopWindow; dc := GetDC(hWin); w := GetDeviceCaps(DC,HORZRES); h := GetDeviceCaps(DC,VERTRES); end; //else entire desktop try Result.Width := w; Result.Height := h; BitBlt(Result.Canvas.Handle,0,0,Result.Width,Result.Height,DC,0,0,SRCCOPY); finally ReleaseDC(hWin, DC) ; end; //try-finally end; procedure TForm1.btnSaveScreenshotClick(Sender: TObject); var bmp : TBitmap; savdlg : TSaveDialog; begin //take a screenshot, prompt for where to save it savdlg := TSaveDialog.Create(Self); bmp := GetScreenshot(False); try if savdlg.Execute then begin bmp.SaveToFile(savdlg.FileName); end; finally FreeAndNil(bmp); FreeAndNil(savdlg); end; //try-finally end;


Gracias a TheSoftwareJedi por proporcionar información útil acerca de la herramienta de ajuste en Windows 7. Acceso directo para abrir la herramienta Recortar: Vaya a Inicio, escriba sni Y encontrará el nombre en la lista "Herramienta de recorte"


Gracias por todo el código fuente y los comentarios. Gracias a eso, finalmente tengo una aplicación que quería :)

He compilado algunos de los ejemplos, y ambas fuentes y ejecutables se pueden encontrar aquí:

http://sdaaubckp.svn.sourceforge.net/viewvc/sdaaubckp/xp-take-screenshot/

Yo uso InterceptCaptureScreen.exe - simplemente ejecútalo en un terminal de símbolo del sistema, y ​​luego presiona Insertar cuando quieras capturar una captura de pantalla (nombres de archivo marcados con el tiempo, png, en el mismo directorio donde está el ejecutable); las claves se capturarán incluso si el terminal no está enfocado.

(Utilizo la tecla Insertar, ya que debería ser más fácil propagarlo a través de, digamos, VNC que PrintScreen, que en mi computadora portátil requiere que también se presione la tecla Fn, y eso no se propaga a través de VNC. Por supuesto, es fácil cambiar es la clave real utilizada en el código fuente).

Espero que esto ayude, ¡Salud!


Hecho poco conocido: en la mayoría de los diálogos estándar de Windows (XP), puede presionar Ctrl + C para tener una copia textual del contenido del diálogo.
Ejemplo: abre un archivo en el Bloc de notas, presiona el espacio, cierra la ventana, presiona Ctrl + C en el cuadro de diálogo Confirmar salida, cancela, pega en el Bloc de notas el texto del cuadro de diálogo.
No relacionado con tu pregunta directa, pero pensé que sería bueno mencionarlo en este hilo.

Además, de hecho, necesitas un software de terceros para hacer la captura de pantalla, pero no necesitas disparar el gran Photoshop para eso. Algo gratis y liviano como IrfanWiew o XnView puede hacer el trabajo. Uso MWSnap para copiar partes arbitrarias de la pantalla. Escribí un pequeño script de AutoHotkey llamando a las funciones de GDI + para hacer capturas de pantalla. Etc.


Mantenga Picasa ejecutándose en segundo plano, y simplemente haga clic en la tecla "Imprimir pantalla"

Source


Necesita una utilidad de captura de pantalla de terceros para esa funcionalidad en XP. Me dedico a los extensos blogs de Scott Hanselman sobre herramientas geniales y, en general, busco tal utilidad. Efectivamente, ha escrito sobre una pareja here .


No hay forma de guardar directamente en un archivo sin una herramienta de terceros antes de Windows 8. Estas son mis soluciones favoritas de herramientas que no son de terceros.

Para Windows 8 y posterior

+ PrintScreen guarda la captura de pantalla en una carpeta en <user>/Pictures/Screenshots

Para Windows 7

En win 7 simplemente use la herramienta de recorte: Se puede acceder más fácilmente presionando Inicio y luego escribiendo "sni" (ingresar). o luego s n i enter

Versiones anteriores de Windows

Uso la siguiente combinación de teclado para capturar, luego guardo usando mspaint. Después de hacerlo un par de veces, solo toma 2-3 segundos:

  1. Alt + PrintScreen
  2. Win + R ("ejecutar")
  3. escriba "mspaint" enter
  4. Ctrl - V (pegar)
  5. Ctrl - S (guardar)
  6. usar el diálogo de archivo
  7. Alt - F4 (cerrar mspaint)

Además, Cropper es excelente (y de código abierto). Captura un rectángulo en un archivo o en un portapapeles y, por supuesto, es gratis.


Por lo que sé en XP, sí, debes usar alguna otra aplicación para guardarla.

¡Vista viene con la herramienta Recortes, que simplifica un poco el proceso!


Por supuesto, podría escribir un programa que monitoree el portapapeles y muestre un molesto diálogo de Guardar como para cada imagen en el portapapeles ;-). Supongo que incluso puede averiguar si la última tecla presionada fue PrintScreen para limitar el número de falsos positivos.

Mientras estoy pensando en eso ... también puedes buscar a alguien que ya hizo exactamente eso.

EDITAR : .. o simplemente esperar a que alguien publique la fuente aquí - como acaba de pasar :-)


Pruebe esto: http://www.screenshot-utility.com/

Desde su página de inicio:

Cuando presiona una tecla rápida, captura y guarda una instantánea de su pantalla en un archivo JPG, GIF o BMP.



Puede codificar algo bastante simple que enganche PrintScreen y guarde la captura en un archivo.

Aquí hay algo para comenzar a capturar y guardar en un archivo. Simplemente deberá enganchar la tecla "Imprimir pantalla".

using System; using System.Drawing; using System.IO; using System.Drawing.Imaging; using System.Runtime.InteropServices; public class CaptureScreen { static public void Main(string[] args) { try { Bitmap capture = CaptureScreen.GetDesktopImage(); string file = Path.Combine(Environment.CurrentDirectory, "screen.gif"); ImageFormat format = ImageFormat.Gif; capture.Save(file, format); } catch (Exception e) { Console.WriteLine(e); } } public static Bitmap GetDesktopImage() { WIN32_API.SIZE size; IntPtr hDC = WIN32_API.GetDC(WIN32_API.GetDesktopWindow()); IntPtr hMemDC = WIN32_API.CreateCompatibleDC(hDC); size.cx = WIN32_API.GetSystemMetrics(WIN32_API.SM_CXSCREEN); size.cy = WIN32_API.GetSystemMetrics(WIN32_API.SM_CYSCREEN); m_HBitmap = WIN32_API.CreateCompatibleBitmap(hDC, size.cx, size.cy); if (m_HBitmap!=IntPtr.Zero) { IntPtr hOld = (IntPtr) WIN32_API.SelectObject(hMemDC, m_HBitmap); WIN32_API.BitBlt(hMemDC, 0, 0,size.cx,size.cy, hDC, 0, 0, WIN32_API.SRCCOPY); WIN32_API.SelectObject(hMemDC, hOld); WIN32_API.DeleteDC(hMemDC); WIN32_API.ReleaseDC(WIN32_API.GetDesktopWindow(), hDC); return System.Drawing.Image.FromHbitmap(m_HBitmap); } return null; } protected static IntPtr m_HBitmap; } public class WIN32_API { public struct SIZE { public int cx; public int cy; } public const int SRCCOPY = 13369376; public const int SM_CXSCREEN=0; public const int SM_CYSCREEN=1; [DllImport("gdi32.dll",EntryPoint="DeleteDC")] public static extern IntPtr DeleteDC(IntPtr hDc); [DllImport("gdi32.dll",EntryPoint="DeleteObject")] public static extern IntPtr DeleteObject(IntPtr hDc); [DllImport("gdi32.dll",EntryPoint="BitBlt")] public static extern bool BitBlt(IntPtr hdcDest,int xDest,int yDest,int wDest,int hDest,IntPtr hdcSource,int xSrc,int ySrc,int RasterOp); [DllImport ("gdi32.dll",EntryPoint="CreateCompatibleBitmap")] public static extern IntPtr CreateCompatibleBitmap(IntPtr hdc, int nWidth, int nHeight); [DllImport ("gdi32.dll",EntryPoint="CreateCompatibleDC")] public static extern IntPtr CreateCompatibleDC(IntPtr hdc); [DllImport ("gdi32.dll",EntryPoint="SelectObject")] public static extern IntPtr SelectObject(IntPtr hdc,IntPtr bmp); [DllImport("user32.dll", EntryPoint="GetDesktopWindow")] public static extern IntPtr GetDesktopWindow(); [DllImport("user32.dll",EntryPoint="GetDC")] public static extern IntPtr GetDC(IntPtr ptr); [DllImport("user32.dll",EntryPoint="GetSystemMetrics")] public static extern int GetSystemMetrics(int abc); [DllImport("user32.dll",EntryPoint="GetWindowDC")] public static extern IntPtr GetWindowDC(Int32 ptr); [DllImport("user32.dll",EntryPoint="ReleaseDC")] public static extern IntPtr ReleaseDC(IntPtr hWnd,IntPtr hDc); }

Actualizar Aquí está el código para enganchar la PrintScreen (y otra clave) de C #:

Código de enganche




Resulta que Google Picasa (gratis) hará esto por ti ahora. Si lo tiene abierto, cuando lo pulse guardará la captura de pantalla en un archivo y lo cargará en Picasa. En mi experiencia, ¡funciona genial!


Sin instalar una utilidad de autoguardado de captura de pantalla, sí lo hace. Hay varias utilidades que puede encontrar sin embargo después de hacer esto.

Por ejemplo: http://www.screenshot-utility.com/


Snagit ... mucha gente de tecnología lo usa.