Как скопировать строку (например, "привет" ) в системный буфер обмена на С#, поэтому в следующий раз я нажимаю CTRL+V, я получу "привет"?
Как скопировать данные в буфер обмена в С#
Ответ 1
Вам понадобится объявление пространства имен:
using System.Windows.Forms;
ИЛИ для WPF:
using System.Windows;
Чтобы скопировать точную строку (буквальный в этом случае):
Clipboard.SetText("Hello, clipboard");
Чтобы скопировать содержимое текстового поля:
Clipboard.SetText(txtClipboard.Text);
См. здесь пример. Или... Официальная документация MSDN или Здесь для WPF.
Ответ 2
Clipboard.SetText("hello");
Для этого вам нужно использовать пространства имен System.Windows.Forms
или System.Windows
.
Ответ 3
Мой опыт решения этой проблемы с использованием WPF С# для копирования в буфер обмена и System.Threading.ThreadStateException
приведен здесь с моим кодом, который корректно работал во всех браузерах:
Thread thread = new Thread(() => Clipboard.SetText("String to be copied to clipboard"));
thread.SetApartmentState(ApartmentState.STA); //Set the thread to STA
thread.Start();
thread.Join();
кредиты на этот пост здесь
Но это работает только на локальном хосте, поэтому не пытайтесь сделать это на сервере, так как он не будет работать.
На стороне сервера я сделал это с помощью zeroclipboard
. Единственный способ, после долгих исследований.
Ответ 4
Для консольных проектов поэтапно вы должны сначала добавить ссылку System.Windows.Forms
. Следующие шаги работают в Visual Studio Community 2013 с .NET 4.5:
- В Обозреватель решений разверните консольный проект.
- Щелкните правой кнопкой мыши Ссылки, затем нажмите Добавить ссылку...
- В группе Ассемблирования в разделе Рамки выберите
System.Windows.Forms
. - Нажмите ОК.
Затем добавьте следующий оператор using
с другими в верхней части вашего кода:
using System.Windows.Forms;
Затем добавьте один из следующих Clipboard
. SetText
в ваш код:
Clipboard.SetText("hello");
// OR
Clipboard.SetText(helloString);
И, наконец, добавьте STAThreadAttribute
к вашему методу Main
следующим образом, чтобы избежать System.Threading.ThreadStateException
:
[STAThreadAttribute]
static void Main(string[] args)
{
// ...
}