Comment puis-je copier une chaîne (par exemple, "hello") dans le Presse-papiers système en C #, de sorte que la prochaine fois que j'appuie sur CTRL+V Je vais avoir "bonjour"?
Vous aurez besoin d'une déclaration d'espace de noms:
using System.Windows.Forms;
OU pour WPF:
using System.Windows;
Pour copier une chaîne exacte (littéral dans ce cas):
Clipboard.SetText("Hello, clipboard");
Pour copier le contenu d'une zone de texte:
Clipboard.SetText(txtClipboard.Text);
Voir ici pour un exemple . Ou ... documentation officielle de MSDN ou ici pour 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 # dans le presse-papier 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 à cet article ici
Mais cela ne fonctionne que sur localhost, alors n'essayez pas cela sur un serveur, cela ne fonctionnera pas.
Du côté du serveur, je l'ai fait en utilisant zeroclipboard
. La seule façon, après beaucoup de recherches.
Pour console projets étape par étape, vous devez d'abord ajouter la référence System.Windows.Forms
. Les étapes suivantes fonctionnent dans Visual Studio Community 2013 avec .NET 4.5:
System.Windows.Forms
. .Ajoutez ensuite l'instruction using
suivante avec les autres en haut de votre code:
using System.Windows.Forms;
Ensuite, ajoutez l’une des déclarations Clipboard
. SetText
suivantes à votre code:
Clipboard.SetText("hello");
// OR
Clipboard.SetText(helloString);
Et enfin, ajoutez STAThreadAttribute
à votre méthode Main
comme suit pour éviter un System.Threading.ThreadStateException
:
[STAThreadAttribute]
static void Main(string[] args)
{
// ...
}