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