ここでは、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 列挙体)はあくまで目印であり、設定できる文字列に制限はない