¿Cómo puedo copiar una cadena (por ejemplo "hola") al Portapapeles del Sistema en C#, de modo que la próxima vez que pulse CTRL+V obtendré "hola"?
Necesitará una declaración de espacio de nombres:
using System.Windows.Forms;
O para WPF:
using System.Windows;
Para copiar una cadena exacta (literal en este caso):
Clipboard.SetText("Hello, clipboard");
Para copiar el contenido de un cuadro de texto:
Clipboard.SetText(txtClipboard.Text);
Vea aquí un ejemplo. O... Documentación oficial de MSDN o Aquí para WPF.
Clipboard.SetText("hello");
Para ello, deberá utilizar los espacios de nombres System.Windows.Forms
o System.Windows
.
Mi experiencia con este problema usando WPF C# coping to clipboard y System.Threading.ThreadStateException
está aquí con mi código que funcionó correctamente con todos los navegadores:
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();
créditos a este post aquí
Pero esto sólo funciona en localhost, así que no intentes esto en un servidor, ya que no va a funcionar.
En el lado del servidor, lo hice usando zeroclipboard
. La única manera, después de mucha investigación.