将数据存储到剪贴板以及从剪贴板读取数据 (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 窗体应用程序”>“剪贴板”中。有关详细信息,请参阅代码片段。
即使在关闭应用程序后,剪贴板中存储的项仍将保留。
确定存储在剪贴板中的文件类型
剪贴板中的数据可以采用多种形式,如文本、音频文件或图像。 若要确定哪种文件位于剪贴板中,可以使用如 ContainsAudio、ContainsFileDropList、ContainsImage 和 ContainsText 的方法。 如果有想要检查的自定义格式,可以使用 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)
重要
由于其他用户可访问剪贴板,不要将其用于存储密码或机密数据等敏感信息。