将数据存储到剪贴板以及从剪贴板读取数据 (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 方法将数据写入剪贴板。 此示例以自定义格式 specialFormat 向剪贴板写入 DataObject dataChunk

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

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

Dim musicReader = My.Computer.FileSystem.ReadAllBytes("cool.wav")
My.Computer.Clipboard.SetAudio(musicReader)

重要

由于其他用户可访问剪贴板,不要将其用于存储密码或机密数据等敏感信息。

另请参阅