Как скопировать данные в буфер обмена на C#
Как я могу скопировать строку (например, "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# копинг в буфер обмена и
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
.- клик ОК.
затем добавьте следующие
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) { // ... }