Как скопировать данные в буфер обмена на C#
Как скопировать строку (e.g" hello") в системный буфер обмена в C#, поэтому в следующий раз я нажимаю CTRL+V Я вам "привет"?
4 ответов
вам понадобится объявление пространства имен:
using System.Windows.Forms;
или для WPF:
using System.Windows;
чтобы скопировать точную строку (литерал в этом случае):
Clipboard.SetText("Hello, clipboard");
скопировать содержимое текстового поля:
Clipboard.SetText(txtClipboard.Text);
см. здесь для примера. Или... официальная документация MSDN или здесь для WPF.
Clipboard.SetText("hello");
вам понадобится System.Windows.Forms
или System.Windows
пространства имен для этого.
мой опыт работы с этой проблемой с помощью WPF c# coping в буфер обмена и 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();
кредиты на этот пост здесь
но это работает только на localhost, поэтому не пытайтесь это на сервере, так как это не сработает.
на стороне сервера, я сделал это с помощью zeroclipboard
. Единственный способ, после долгих исследований.
на консоль проекты шаг за шагом, вы должны будете сначала добавить System.Windows.Forms
ссылка. Следующие шаги работают в Visual Studio Community 2013 с .NET 4.5:
- на Обозреватель, разверните проект консоли.
- щелкните правой кнопкой мыши ссылки, нажмите кнопку Добавить Ссылку...
- на сборки группа, под рамки, выберите
System.Windows.Forms
. - клик OK.
затем добавьте следующие 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)
{
// ...
}