Capturar pantalla al Clipboard desde Visual Basic

Quién sabrá cómo hacer desde Visual Basic que se capture la pantalla y se mande al Clipboard, ¿para poder manejar posteriormente esta imagen?

1 Respuesta

Respuesta
1
Te paso un código fácil,
Declara esto en el procedimiento general:
Option Explicit
Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_MENU = &H12
Private Const VK_SNAPSHOT = &H2C
Private Const KEYEVENTF_KEYUP = &H2
Pone un boton y un picture en el form
al boton ponele este codigo:
keybd_event VK_MENU, 0, 0, 0
DoEvents
keybd_event VK_SNAPSHOT, 1, 0, 0
DoEvents
keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
DoEvents
Picture1.Picture = Clipboard.GetData
Y listo, al hacer click en el botón te va a aparecer lo capturado en el portapeles en el picture, te queda en el portapapelos, vos podes enviarlo a donde quieras. Utilizas el Clipboar. GetData para tomar los datos.
Cualquier duda estoy a tu disposición.
Gracias por la ayuda, quisiera saber cómo puedo guardar una imagen obtenida del clipboard como un archivo BMP en el disco, utilizando sólo funciones del API.
La idea es capturar la pantalla, y dejarla en un archivo, a través del API.
Muchas gracias.
La captura de pantalla ya es por API, para guardarla a un BMP utilizas esta función:
SavePicture Clipboard. GetData, "C:\prueba.bmp"
No utilizarias el Picture1, asi que borra la linea en la que carga la imagen en el Picture.
Cualquier duda estoy a tu disposición.
Gracias nuevamente por la pronticidad de la respuesta. Sin embargo no aclaré bien mi pregunta, quería guardar la imagen utilizando API también, pues SavePicture es una función de Visual Basic. Y lo malo de estas funciones es que el EXE generado necesita dll's adicionales de Visual, que no quiero incluir en mis ejecutables por razones de tamaño.
Muchas gracias nuevamente,
Atentamente, Gigio.
La función SavePicture es interna de Visual basic, no requiere ninguna librería externa, en todo caso utiliza la misma librería que utilizas para mostrar un formulario o un botón, esta dentro de las llamadas Runtime.
Cualquier duda estoy a tu disposición.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas