Как я могу скопировать строку (электронная.г "Привет") в системный буфер обмена на C#, так что в следующий раз, когда я нажимаю <и>сочетание клавиш ctrl+v в</КБД> Я'll получить "Привет"?
Вы'll необходимо объявление пространства имен:
using System.Windows.Forms;
Или для WPF:
using System.Windows;
Чтобы скопировать определенную строку (буквального, в данном случае):
Clipboard.SetText("Hello, clipboard");
Скопировать содержимое текстового поля:
Clipboard.SetText(txtClipboard.Text);
См. здесь пример. Или... официальной документации MSDN или здесь для WPF.
Clipboard.SetText("hello");
Вы'll необходимо использовать системы.Окна.Или система форм`.Пространства имен в Windows для этого.
Мой опыт с этой проблемы с использованием WPF C# для выживания в буфер обмена и системы`.Резьбонарезной.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, так Дон'т попробовать это на сервере, так как он's не собирается работать.
На стороне сервера, я сделал это с помощью zeroclipboard
. Единственный способ, после долгих исследований.
Для консоль проекты в шаг за шагом моды, вы'придется сначала добавить в систему.Окна.Формы справки. Следующие этапы работы в Visual Studio 2013 сообщество с .Нетто 4.5:
.Окна.Форм
.Затем добавьте следующие использование
заявление вместе с остальными в верхней части вашего кода:
using System.Windows.Forms;
Затем добавьте один из следующих Clipboard
.[SetText
](https://msdn.microsoft.com/en-us/library/ydby206k(v=vs. 110).aspx) высказывания в ваш код:
Clipboard.SetText("hello");
// OR
Clipboard.SetText(helloString);
И, наконец, добавить STAThreadAttribute
на ваш метод main следующим образом, чтобы избежать системы.Резьбонарезной.ThreadStateException`:
[STAThreadAttribute]
static void Main(string[] args)
{
// ...
}