Cómo copiar la pantalla o la ventana activa al Portapapeles desde Visual Basic

Seleccione idioma Seleccione idioma
Id. de artículo: 240653 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se muestra cómo copiar la ventana activa o toda la pantalla en el Portapapeles y la imagen de impresión mediante programación.

Más información

El código incluido en el artículo de Knowledge Base:
161299 Cómo capturar e imprimir la pantalla, una forma o cualquier ventana
muestra cómo capturar un formulario o ventana, incluida la pantalla y colocarlo en un objeto Picture de Visual Basic. Si es el único requisito copiar la pantalla o la ventana activa en el Portapapeles, la API keybd_event es mucho más fácil y más bajo overhead enfocar. Una llamada a la API keybd_event tiene la misma funcionalidad que si escribe las combinaciones de teclas Impr Pant (copiar la pantalla al Portapapeles) o ALT + Impr Pant (copia la ventana activa en el Portapapeles). Si también necesita imprimir la imagen, un control PictureBox oculto puede proporcionar esta funcionalidad.

Ejemplo paso a paso

  1. Inicie un nuevo proyecto EXE estándar de Visual Basic. De forma predeterminada, se crea Form1.
  2. Agregue tres botones y un control PictureBox a Form1.
  3. Agregue el código siguiente en la sección de declaraciones generales de Form1:
    Option Explicit
    
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal _
       bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    
    Private Declare Function GetVersionExA Lib "kernel32" _
          (lpVersionInformation As OSVERSIONINFO) As Integer
    
    Private Type OSVERSIONINFO
        dwOSVersionInfoSize As Long
        dwMajorVersion As Long
        dwMinorVersion As Long
        dwBuildNumber As Long
        dwPlatformId As Long
        szCSDVersion As String * 128
    End Type
    
    Private Const KEYEVENTF_KEYUP = &H2
    Private Const VK_SNAPSHOT = &H2C
    Private Const VK_MENU = &H12
    
    Dim blnAboveVer4 As Boolean
    
    Private Sub Command1_Click()
        If blnAboveVer4 Then
            keybd_event VK_SNAPSHOT, 0, 0, 0
        Else
            keybd_event VK_SNAPSHOT, 1, 0, 0
        End If
    End Sub
    
    Private Sub Command2_Click()
        If blnAboveVer4 Then
            keybd_event VK_SNAPSHOT, 1, 0, 0
        Else
            keybd_event VK_MENU, 0, 0, 0
            keybd_event VK_SNAPSHOT, 0, 0, 0
            keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0
            keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
        End If
    End Sub
    
    Private Sub Command3_Click()
        ' Load the captured image into a PictureBox and print it
        Picture1.Picture = Clipboard.GetData()
        Printer.PaintPicture Picture1.Picture, 0, 0
        Printer.EndDoc
    End Sub
    
    Private Sub Form_Load()
        Dim osinfo As OSVERSIONINFO
        Dim retvalue As Integer
       
        osinfo.dwOSVersionInfoSize = 148
        osinfo.szCSDVersion = Space$(128)
        retvalue = GetVersionExA(osinfo)
        If osinfo.dwMajorVersion > 4 Then blnAboveVer4 = True
    
        Picture1.Visible = False
        Command1.Caption = "Print Screen"
        Command2.Caption = "Alt+Print Screen"
        Command3.Caption = "Print Image"
    End Sub
    					
  4. Abra Microsoft Paint y, a continuación, ejecute el proyecto.
  5. Haga clic en el botón Imprimir pantalla , cambie a la pintura y presione CTRL+v para pegar el contenido del Portapapeles en Paint. Se pega toda la pantalla.
  6. Haga clic en el botón Alt + Impr Pant , cambiar a pintar como antes y vuelva a presionar CTRL+v . Se pega sólo la ventana activa.
  7. Haga clic en el botón Imprimir de la imagen y la imagen capturada imprimirá (utilizando un control PictureBox oculto).

Referencias

Para obtener información adicional, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
161299 Cómo capturar e imprimir la pantalla, una forma o cualquier ventana

189249 Cómo determinar qué versión de Windows de 32 bits se está utilizando

Propiedades

Id. de artículo: 240653 - Última revisión: jueves, 31 de octubre de 2013 - Versión: 3.0
La información de este artículo se refiere a:
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
Palabras clave: 
kbapi kbclipboard kbhowto kbprint kbmt KB240653 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 240653

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com