Поделиться через


Запись данных в буфер обмена и чтение их оттуда (Visual Basic)

Буфер обмена можно использовать для хранения данных, таких как текст и изображения.Поскольку буфер обмена используется совместно всеми активными процессами, его можно использовать для передачи данных между ними.Объект My.Computer.Clipboard позволяет легко получать доступ буфер обмена и чтения и записи в него.

Чтение из буфера обмена

Используйте метод GetText для чтения текста в буфере обмена.Следующий код читает текст и отображает его в окне сообщения.Для правильной работы примера в буфере обмена должен храниться текст.

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

Данный пример кода доступен также в качестве фрагмента кода IntelliSense.В окне выбора фрагмента кода он находится в разделе Приложения Windows Forms > Буфер обмена.Дополнительные сведения см. в разделе Фрагменты кода.

Для извлечения изображения из буфера обмена используйте метод 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 Forms > Буфер обмена.Дополнительные сведения см. в разделе Фрагменты кода.

Элементы, помещенные в буфер обмена, сохранятся даже после завершения работы приложения.

Указание типа файла, хранящегося в буфере обмена

Данные в буфере обмена могут принимать множество различных форм, таких как текст, звуковой файл или изображение.Для того, чтобы определить, какой вид файла находится в буфере обмена, можно использовать такие методы как ContainsAudioContainsFileDropList, 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 для записи данных в буфер обмена.Этот пример записывает объект 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