VB Cómo tomar capturas de pantalla y
Se puede implementar mediante el siguiente código, solo como referencia:
Option?Explicit
Private?Declare?Function?ReleaseDC?Lib?"user32" ?(ByVal ?hwnd?As?Long,?ByVal?hdc?As?Long)?As?Long
¿Privado?Declarar?Función?OpenClipboard?Lib?"user32"?(ByVal?hwnd?As ?Long) ?As?Long
Privado?Declarar?Función?EmptyClipboard?Lib?"user32"?()?As?Long
Privado?Declarar?Función?SetClipboardData?Lib ?"user32 "?(ByVal?wFormat?As?Long,?ByVal?hMem?As?Long)?As?Long
¿Privado?Declarar?Función?SelectObject?Lib?"gdi32"?(ByVal ?hdc?As?Long,?ByVal?hObject?As?Long)?As?Long
¿Privado?Declarar?Función?DeleteDC?Lib?"gdi32"?(ByVal?hdc?As?Long) ?As?Long
¿Privado?Declarar?Función?BitBlt?Lib?"gdi32"?(ByVal?hDestDC?As?Long, ByVal?x?As?Long, ByVal?Y?As?Long, ByVal?nWidth?As?Long, ByVal?nHeight?As?Long, ByVal?hSrcDC?As?Long, ByVal?xSrc?As?Long, ByVal?ySrc?As?Long, ByVal?dwRop?As?Long).
¿Alias de "gdi32"? ¿CreateDCA"?(ByVal?lpDriverName?As?String, ByVal?lpDeviceName?As?String, ByVal?lpOutput?As?String, lpInitData?As?Long)? Función de declaración CreateCompatibleDC Lib?"gdi32"?(ByVal?hdc?As ?Largo)?As?Largo
Privado?"gdi32"?(ByVal?hdc?As?Long,?ByVal?nWidth?As?Long,?ByVal?nHeight?As?Long)?As? Long
¿Privado?Declarar?Función?CerrarClipboard?Lib?"user32 "?As?Long
Privado?Sub?Command1_Click() Llamar?ScrnCap(0,?0 ,?800,?600)?Llamar a una función con 4 parámetros con las coordenadas de la esquina superior izquierda y la esquina inferior derecha
Image1.Picture?=?Clipboard.GetData()
End? Sub
Sub?ScrnCap(Lt? es un número entero, ?top? es un número entero, ?Rt? es un número entero, ?Bot? es un número entero)?'' Función principal de captura de pantalla Dim? rWidth,?rHeight,? SourceDC,?DestDC,?BHandle,?Wnd,?DHandle rWidth?=?Rt?-?Lt rHeight?=?Bot?-?top SourceDC?=?CreateDC("DISPLAY",?0, ?0,?0) DestDC?=?CreateCompatibleDC(SourceDC) BHandle?=?CreateCompatibleBitmap(SourceDC,?rWidth,? rHeight) SelectObject?DestDC,?BHandle BitBlt?DestDC,?0,?0,?rWidth,?rHeight, ?SourceDC,?Lt, ?top,?&HCC0020 Wnd?=?Screen.ActiveForm.hwnd
OpenClipboard?Wnd EmptyClipboard SetClipboardData?2, BHandle CloseClipboard DeleteDC?DestDC ReleaseDC?DHandle,?SourceDC
¿Fin?