Comment copier des données dans le presse-papiers en C#
4 réponses
vous aurez besoin d'une déclaration namespace:
using System.Windows.Forms;
ou pour WPF:
using System.Windows;
pour copier une chaîne exacte (littérale dans ce cas):
Clipboard.SetText("Hello, clipboard");
pour copier le contenu d'une boîte de texte:
Clipboard.SetText(txtClipboard.Text);
voir ici pour un exemple . Ou... documents officiels MSDN or Here for WPF .
Clipboard.SetText("hello");
vous devrez utiliser les espaces de noms System.Windows.Forms
ou System.Windows
pour cela.
mon expérience avec ce problème en utilisant WPF C # coping au bloc-notes et System.Threading.ThreadStateException
est ici avec mon code qui a fonctionné correctement avec tous les navigateurs:
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édits pour ce poste ici
mais cela ne fonctionne que sur localhost, donc ne l'essayez pas sur un serveur, car il ne va pas fonctionner.
côté serveur, Je l'ai fait en utilisant zeroclipboard
. La seule façon, après beaucoup de recherches.
pour console projets étape par étape, vous devrez d'abord ajouter la référence System.Windows.Forms
. Les étapes suivantes fonctionnent dans Visual Studio Community 2013 avec .NET 4.5:
- In Solution Explorer , développez votre projet de console.
- clic droit références , puis cliquez sur ajouter référence...
- dans le groupe assemblages , sous Framework , sélectionner
System.Windows.Forms
. - , Cliquez sur OK .
ensuite, ajouter la déclaration suivante using
avec les autres en haut de votre code:
using System.Windows.Forms;
ensuite, ajouter l'une des mentions suivantes: Clipboard
. SetText
déclarations à votre code:
Clipboard.SetText("hello");
// OR
Clipboard.SetText(helloString);
et enfin, ajouter STAThreadAttribute
à votre méthode Main
comme suit, pour éviter un System.Threading.ThreadStateException
:
[STAThreadAttribute]
static void Main(string[] args)
{
// ...
}