C#でシステムクリップボードに文字列( "hello"など)をコピーするにはどうすればよいですか。 CTRL+V 「こんにちは」をもらえますか。
名前空間宣言が必要です。
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
名前空間を使用する必要があります。
クリップボードとSystem.Threading.ThreadStateException
に対処するWPF C#を使用したこの問題に関する私の経験は、すべてのブラウザで正しく動作した私のコードを使ったものです。
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
を使用してそれを行いました。唯一の方法は、たくさんの研究の後です。
段階的な方法でconsoleプロジェクトを作成するには、まずSystem.Windows.Forms
参照を追加する必要があります。次の手順は、.NET 4.5を搭載したVisual Studio Community 2013で機能します。
System.Windows.Forms
を選択します。次に、コードの先頭に、次のusing
ステートメントを他のステートメントと共に追加します。
using System.Windows.Forms;
次に、以下の Clipboard
。 SetText
ステートメントのいずれかをコードに追加します。
Clipboard.SetText("hello");
// OR
Clipboard.SetText(helloString);
そして最後に、System.Threading.ThreadStateException
を避けるために、次のように STAThreadAttribute
をMain
メソッドに追加します。
[STAThreadAttribute]
static void Main(string[] args)
{
// ...
}