Almacenar y leer datos en el Portapapeles (Visual Basic)

El Portapapeles se puede utilizar para almacenar datos, como texto e imágenes. Dado que todos los procesos activos comparten el Portapapeles, se puede utilizar para transferir datos entre ellos. El objeto de My.Computer.Clipboard permite tener acceso fácilmente al portapapeles y que lo lea de y que escribir.

Leer el portapapeles

Utilice el método de GetText para leer el texto del portapapeles. El siguiente código lee el texto y lo muestra en un cuadro de mensaje. Debe haber texto almacenado en el Portapapeles para que el ejemplo se ejecute correctamente.

MsgBox(My.Computer.Clipboard.GetText())

Este ejemplo de código también está disponible como fragmento de código de IntelliSense. En el selector de fragmentos de código, se encuentra en Aplicaciones de Windows Forms> Portapapeles. Para obtener más información, vea Fragmentos de código.

Utilice el método GetImage para recuperar una imagen del Portapapeles. Este ejemplo comprueba si existe una imagen en el Portapapeles antes de recuperarla y asignarla a PictureBox1.

If My.Computer.Clipboard.ContainsImage() Then 
  Dim grabpicture As System.Drawing.Image
  grabpicture = My.Computer.Clipboard.GetImage()
  picturebox1.Image = grabpicture
End If

Este ejemplo de código también está disponible como fragmento de código de IntelliSense. En el selector de fragmentos de código, se encuentra en Aplicaciones de Windows Forms> Portapapeles.Para obtener más información, vea Fragmentos de código.

Los elementos incluidos en el Portapapeles se conservarán incluso después de salir de la aplicación.

Determinar el tipo de archivo almacenado en el portapapeles

Los datos del Portapapeles pueden tener formas diferentes, puede tratarse, por ejemplo, de un texto, un archivo de sonido o una imagen. Para determinar qué tipo de archivo se encuentra en el Portapapeles, puede utilizar distintos métodos, como ContainsAudio, ContainsFileDropList, ContainsImage y ContainsText. Puede utilizar el método ContainsData si tiene un formato personalizado que desea comprobar.

Utilice la función ContainsImage para determinar si los datos contenidos en el Portapapeles son una imagen. El código siguiente comprueba si los datos son una imagen y crea un informe en consecuencia.

If My.Computer.Clipboard.ContainsImage() Then
    MsgBox("Clipboard contains an image.")
Else
    MsgBox("Clipboard does not contain an image.")
End If

borrar el portapapeles

El método Clear borra el Portapapeles. Otros procesos comparten el Portapapeles, por lo que borrarlo puede tener un impacto en ellos.

En el código siguiente se muestra cómo puede utilizar el método Clear.

My.Computer.Clipboard.Clear()

Escribir en el portapapeles

Utilice el método SetText para escribir texto en el Portapapeles. El código siguiente escribe la cadena "This is a test string" en el Portapapeles.

My.Computer.Clipboard.SetText("This is a test string.")

El método de SetText puede aceptar un parámetro de formato que contenga un tipo de TextDataFormat. El código siguiente escribe la cadena "This is a test string" en el Portapapeles como texto RTF.

My.Computer.Clipboard.SetText("This is a test string.", 
System.Windows.Forms.TextDataFormat.Rtf)

Utilice el método SetData para escribir datos en el Portapapeles. En este ejemplo se escribe DataObject dataChunk en el Portapapeles en el formato specialFormat personalizado.

My.Computer.Clipboard.SetData("specialFormat", dataChunk)

Utilice el método SetAudio para escribir datos de sonido en el Portapapeles. En este ejemplo se crea la matriz de bytes musicReader, se lee en ella el archivo cool.wav y, a continuación, se escribe en el Portapapeles.

Dim musicReader = My.Computer.FileSystem.ReadAllBytes("cool.wav")
My.Computer.Clipboard.SetAudio(musicReader)
Nota de seguridadNota sobre la seguridad

Como otros usuarios pueden tener acceso al Portapapeles, no se debe utilizar para almacenar información confidencial, como contraseñas o datos reservados.

Vea también

Tareas

Cómo: Leer datos de objetos de un archivo XML (C# y Visual Basic)

Cómo: Escribir datos de objetos en un archivo XML (C# y Visual Basic)

Referencia

ClipboardProxy

GetAudioStream

SetDataObject