Armazenando dados e lendo na Área de Transferência (Visual Basic)
A Área de Transferência pode ser usada para armazenar dados, como texto e imagens. Como a Área de Transferência é compartilhada por todos os processos ativos, ela pode ser usada para transferir dados entre eles. O objeto My.Computer.Clipboard
permite que você acesse facilmente a Área de Transferência e leia e grave nela.
Lendo da Área de Transferência
Use o método GetText para ler o texto da Área de Transferência. O código a seguir lê o texto e o mostra em uma caixa de mensagem. Deve haver texto armazenado na Área de Transferência para que o exemplo seja executado corretamente.
MsgBox(My.Computer.Clipboard.GetText())
Este exemplo de código também está disponível como um snippet de código do IntelliSense. No seletor de snippet de código, ele está localizado em Aplicativos do Windows Forms > Área de Transferência. Para obter mais informações, consulte Snippets de Código.
Use o método GetImage para recuperar uma imagem da Área de Transferência. Este exemplo verifica se há alguma imagem na Área de Transferência antes de recuperá-la e atribuí-la à PictureBox1
.
If My.Computer.Clipboard.ContainsImage() Then
Dim grabpicture As System.Drawing.Image
grabpicture = My.Computer.Clipboard.GetImage()
picturebox1.Image = grabpicture
End If
Este exemplo de código também está disponível como um snippet de código do IntelliSense. No seletor de snippet de código, ele está localizado em Aplicativos do Windows Forms > Área de Transferência. Para obter mais informações, consulte Snippets de código.
Itens colocados na Área de Transferência persistirão mesmo após o aplicativo ser encerrado.
Determinando o tipo de arquivo armazenado na Área de Transferência
Os dados na área de transferência podem ter várias formas diferentes, como texto, um arquivo de áudio ou uma imagem. Para determinar que tipo de arquivo está na Área de Transferência, você pode usar métodos como ContainsAudio, ContainsFileDropList, ContainsImage e ContainsText. Você poderá usar o método ContainsData se quiser verificar um formato personalizado.
Use a função ContainsImage
para determinar se os dados contidos na Área de Transferência são uma imagem. O código a seguir verifica se os dados são uma imagem e relata de acordo.
If My.Computer.Clipboard.ContainsImage() Then
MsgBox("Clipboard contains an image.")
Else
MsgBox("Clipboard does not contain an image.")
End If
Limpando a Área de Transferência
O método Clear limpa a Área de Transferência. Como a Área de Transferência é compartilhada por outros processos, limpá-la pode ter nesses processos.
O código a seguir mostra como usar o método Clear
.
My.Computer.Clipboard.Clear()
Gravando na Área de Transferência
Use o método SetText para gravar texto na Área de Transferência. O código a seguir grava a cadeia de caracteres "This is a test string" na Área de Transferência.
My.Computer.Clipboard.SetText("This is a test string.")
O método SetText
pode aceitar um parâmetro de formato que contém um tipo de TextDataFormat. O código a seguir grava a cadeia de caracteres "This is a test string" na Área de Transferência como um texto RTF.
My.Computer.Clipboard.SetText("This is a test string.",
System.Windows.Forms.TextDataFormat.Rtf)
Use o método SetData para gravar dados na Área de Transferência. Esse exemplo grava DataObject
dataChunk
na área de transferência no formato personalizado specialFormat
.
My.Computer.Clipboard.SetData("specialFormat", dataChunk)
Use o método SetAudio para gravar dados de áudio na Área de Transferência. Este exemplo cria a matriz de bytes musicReader
, lê o arquivo cool.wav
nela e o grava na Área de Transferência.
Dim musicReader = My.Computer.FileSystem.ReadAllBytes("cool.wav")
My.Computer.Clipboard.SetAudio(musicReader)
Importante
Como a Área de Transferência pode ser acessada por outros usuários, não a use para armazenar informações confidenciais, como senhas ou dados confidenciais.