portapapeles pegar net limpiar copiar c# clipboard

c# - pegar - vba limpiar portapapeles



Cómo copiar datos al portapapeles en C# (4)

Mi experiencia con este problema al usar la copia de C # de WPF en el portapapeles 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 para esta publicación here

Pero esto solo funciona en localhost, así que no intentes esto en un servidor, ya que no va a funcionar.

En el lado del servidor, lo hice utilizando zeroclipboard . La única manera, después de mucha investigación.

¿Cómo puedo copiar una cadena (por ejemplo, "hola") al Portapapeles del sistema en C #, por lo que la próxima vez que presione 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í para un ejemplo . O ... Documentación oficial de MSDN o aquí para WPF .


Para los proyectos de consola paso a paso, primero deberá agregar la referencia System.Windows.Forms . Los siguientes pasos funcionan en Visual Studio Community 2013 con .NET 4.5:

  1. En el Explorador de soluciones , expanda su proyecto de consola.
  2. Haga clic derecho en Referencias , luego haga clic en Agregar referencia ...
  3. En el grupo Conjuntos , en Marco , seleccione System.Windows.Forms .
  4. Haga clic en Aceptar .

Luego, agregue la siguiente declaración de using con las otras en la parte superior de su código:

using System.Windows.Forms;

Luego, agregue cualquiera de los siguientes Clipboard . SetText declaraciones de texto a su código:

Clipboard.SetText("hello"); // OR Clipboard.SetText(helloString);

Y, por último, agregue STAThreadAttribute a su método Main siguiente manera, para evitar una System.Threading.ThreadStateException :

[STAThreadAttribute] static void Main(string[] args) { // ... }


Clipboard.SetText("hello");

Tendrá que usar los espacios de nombres System.Windows.Forms o System.Windows para eso.