[ VB.NET / C# ] クリップボードに文字列をコピー、取得、削除する ( Clipboard.SetText )

Pocket

ここでは、VB.NET と C# において、文字列をクリップボードに設定および取得するサンプルコードを掲載しています。

スポンサーリンク

クリップボードテキスト操作サンプルコード

VB.NET

    ' クリップボードからすべてのデータを削除する
    Clipboard.Clear()

    Dim str As String = "Set String"

    Clipboard.SetText(str)

    If (Clipboard.ContainsText()) Then
        str = Clipboard.GetText()
        Console.WriteLine(str)  ' Set String
    End If

    Dim html As String = "<html></html>"

    ' クリップボードにフォーマットを指定して文字列を設定する
    Clipboard.SetText(html, TextDataFormat.Html)

    If (Clipboard.ContainsText(TextDataFormat.Html)) Then
        html = Clipboard.GetText(TextDataFormat.Html)
        Console.WriteLine(html) ' <html></html>
    End If

    ' すでに、HTML フォーマットでクリップボードの内容が上書きされているので
    ' ContainsText では、False がリターンされる
    If (Clipboard.ContainsText()) Then
        ' 通らない
        str = Clipboard.GetText()
    End If

    ' アプリケーション終了後もクリップボードに情報は残るので
    ' 残したくない場合は削除する
    Clipboard.Clear()

C#

    // クリップボードからすべてのデータを削除する
    Clipboard.Clear();

    string str = @"Set String";

    Clipboard.SetText(str);

    if (Clipboard.ContainsText()) {
        str = Clipboard.GetText();
        Console.WriteLine(str);  // Set String
    }

    string html = @"<html></html>";

    // クリップボードにフォーマットを指定して文字列を設定する
    Clipboard.SetText(html, TextDataFormat.Html);

    if (Clipboard.ContainsText(TextDataFormat.Html)) {
        html = Clipboard.GetText(TextDataFormat.Html);
        Console.WriteLine(html); // <html></html>
    }

    // すでに、HTML フォーマットでクリップボードの内容が上書きされているので
    // ContainsText では、False がリターンされる
    if (Clipboard.ContainsText()) {
        // 通らない
        str = Clipboard.GetText();
    }

    // アプリケーション終了後もクリップボードに情報は残るので
    // 残したくない場合は削除する
    Clipboard.Clear();

ポイント

  • アプリケーション終了後もクリップボードの内容は残る
  • テキストのフォーマット(TextDataFormat 列挙体)はあくまで目印であり、設定できる文字列に制限はない
参考
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *