Работа с буфером обмена в C#

Доброго времени суток! В данной статье мы рассмотрим пример работы с буфером обмена в C#.

Для любого мало-мальски опытного пользователя ПК известно, что пользователь может переносить данные из одной области в другую, используя буфер обмена — место временного хранения данных. Например, пользователь текстового редактора может скопировать материал из одной части документа и вставить его в другую часть документа или в другое место.

Используя методы, предоставляемые классом Clipboard в C#, мы сможем взаимодействовать с функциями буфера обмена, встроенными в операционную систему Windows.

Например, текстовые процессоры используют буфер обмена всякий раз, когда они выполняют действия, связанные с вырезанием и вставкой. Буфер обмена — это инструмент, который позволяет передавать информацию из одного приложения в другое.

Когда вы нажимаете Ctrl+C, некоторые фрагменты информации или файлы копируются в память системного буфера обмена. Там они будут оставаться до тех пор, пока вы не нажмете Ctrl + V, чтобы вставить их в нужное место.

Класс Clipboard в C# позволяет пользователям копировать и вставлять данные и извлекать их из буфера обмена, что является одной из его многочисленных функций.

В примере далее мы скопируем все данные из буфера обмена с помощью буфера метода Clipboard.GetDataObject(). Буфер обмена может содержать изображения и другие типы, которые не являются строками, поэтому мы используем условия, чтобы проверить, является ли содержимое буфера строкой или нет. Если это не так — выводим сообщение об ошибке.


IDataObject text = Clipboard.GetDataObject();

// если содержимое буфера - текст
if (text.GetDataPresent(DataFormats.Text))
    data.Text = (String)text.GetData(DataFormats.Text);
else
    data.Text = "Формат данных не поддерживается";

Существует еще один доступный вариант для извлечения данных из буфера обмена — можно воспользоваться методом Clipboard.GetTextGetText.


data = Clipboard.GetText(TextDataFormat.Text);

Это еще один метод извлечения информации, сохраненной в буфере обмена. Также данные можно записать в буфер обмена, используя метод Clipboard.SetText.


Clipboard.SetText(data, TextDataFormat.Text);

data — это строка, которая будет скопирована в буфер обмена, а TextDataFormat.Text — это формат сохраняемых данных. Если данные представлены в формате Html, то формат будет иметь тип TextDataFormat.Html.

Таким образом в данной статье мы рассмотрели основы работы с буфером обмена в C#.

Источник