将数据存储到剪贴板以及从剪贴板读取数据 (Visual Basic)

剪贴板可用于存储数据,例如文本和图像。 由于剪贴板为所有活动进程共享,因此可以利用它在进程之间传输数据。 My.Computer.Clipboard 对象使您可以方便地访问剪贴板以及读取和写入它。

读取剪贴板

使用 GetText 方法读取剪贴板上的文本。 下面的代码读取该文本并在消息框中显示该 必须在该示例的剪贴板上存储的文本才能正确运行。

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

此代码示例也可用作 IntelliSense 代码段。 在代码段选择器,它位于 windows 窗体应用程序 > 剪贴板。 有关更多信息,请参见 代码段

使用 GetImage 方法从剪贴板检索图像。 此示例检查是否有剪贴板上的图像。检索并赋给到PictureBox1。

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

此代码示例也可用作 IntelliSense 代码段。 在代码段选择器中,它位于 windows 窗体应用程序 > 剪贴板。 有关更多信息,请参见。

,在应用程序关闭后,放置在剪贴板上的项保持。

确定剪贴板上存储的文件类型

剪贴板上的数据可以采用多种不同形式,例如文本、音频文件或图像。 为了确定剪贴板上的文件,可以使用之类的方法 ContainsAudioContainsFileDropListContainsImageContainsText。 可以使用 ContainsData 方法,如果您具有要检查的自定义布局。

使用 ContainsImage 函数确定剪贴板上包含的数据是否为图像。 下面的代码检查数据是否为图像并作出相应报表。

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

清除剪贴板

Clear 方法清除剪贴板。 由于剪贴板由其他进程共享,因此清除剪贴板可能会影响这些进程。

下面的代码演示如何使用 Clear 方法。

My.Computer.Clipboard.Clear()

写入剪贴板

使用 SetText 方法将文本写入剪贴板。 下面的代码编写该字符串 “this is a test string”到剪贴板。

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

SetText 方法可接受包含 TextDataFormat类型的格式参数。 下面的代码编写该字符串 “this is a test string”到剪贴板以 RTF 文本格式。

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

使用 SetData 方法将数据写入剪贴板。 此示例写入剪贴板的 DataObjectdataChunk 以自定义格式 specialFormat。

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

使用 SetAudio 方法将音频数据写入剪贴板。 此示例创建字节数组 musicReader,读取文件 cool.wav 到该文件中,然后将其复制到剪贴板。

Dim musicReader = My.Computer.FileSystem.ReadAllBytes("cool.wav")
My.Computer.Clipboard.SetAudio(musicReader)
安全说明安全说明

因为其他用户可以访问剪贴板,不要将其存储敏感信息,如密码或机密数据。

请参见

任务

如何:从 XML 文件读取对象数据(C# 和 Visual Basic)

如何:将对象数据写入 XML 文件(C# 和 Visual Basic)

参考

ClipboardProxy

GetAudioStream

SetDataObject