Как очистить содержимое буфера обмена с помощью C # - PullRequest
0 голосов
/ 14 октября 2010

У меня есть приложение, в котором я использую буфер обмена для операций копирования и вставки.Для копирования я использовал этот код:

Clipboard.Clear();
const byte VK_CONTROL = 0x11;
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(0x43, 0, 0, 0); // Send the C key (43 is "C")
keybd_event(0x43, 0, CONST_KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, CONST_KEYEVENTF_KEYUP, 0);

Но выдает ошибку: 1004 * Невозможно выполнить действие с буфером обмена , и я не могу его вставить.Вызывает исключение.

Как мне решить эту проблему или есть другие способы очистки содержимого буфера обмена перед копированием?

Ответы [ 4 ]

2 голосов
/ 14 октября 2010

Использование:

Clipboard.SetText("some string");
Clipboard.GetText();

См. Статью MSDN Класс буфера обмена (System.Windows.Forms) .

1 голос
/ 19 октября 2010

Я сделал это с помощью вызовов Win32 API ( Функция EmptyClipboard ).

0 голосов
/ 24 февраля 2019

простой способ очистить содержимое, заменить его только пробелом:

public static void Clear()
{
    Thread STAThread = new Thread(
                             delegate ()
                             {
                                 System.Windows.Forms.Clipboard.SetText(" ");
                             });

    STAThread.SetApartmentState(ApartmentState.STA);
    STAThread.Start();
    STAThread.Join();

}
0 голосов
/ 14 октября 2010
Clipboard.Clear()

MSDN

...