クリップボードのデータの格納と読み取り (Visual Basic)
クリップボードは、テキスト、イメージなどのデータの格納に使用できます。 アクティブなプロセスすべてがこのクリップボードを共有しているため、クリップボードを使ってデータをプロセス間で転送することができます。 My.Computer.Clipboard
オブジェクトを使用すると、クリップボードに簡単にアクセスして、読み込みや書き込みを実行できます。
クリップボードからの読み取り
GetText メソッドを使用すると、クリップボードからテキストを読み取ることができます。 次のコードはテキストを読み取って、メッセージ ボックスに表示します。 この例を正しく動作させるには、クリップボードにテキストが格納されている必要があります。
MsgBox(My.Computer.Clipboard.GetText())
このコード例は、IntelliSense コード スニペットとしても利用できます。 コード スニペット ピッカーでは、これは [Windows フォーム アプリケーション] > [クリップボード] にあります。 詳細については、「Code Snippets」を参照してください。
GetImage メソッドを使用すると、クリップボードからイメージを取得できます。 この例では、イメージを取得して PictureBox1
に割り当てる前に、そのイメージがクリップボードにあるかどうかを確認します。
If My.Computer.Clipboard.ContainsImage() Then
Dim grabpicture As System.Drawing.Image
grabpicture = My.Computer.Clipboard.GetImage()
picturebox1.Image = grabpicture
End If
このコード例は、IntelliSense コード スニペットとしても利用できます。 コード スニペット ピッカーでは、これは [Windows フォーム アプリケーション] > [クリップボード] にあります。詳しくは、「コード スニペット」をご覧ください。
クリップボード内のアイテムは、アプリケーションの終了後も保持されます。
クリップボードに格納されているファイルの種類の確認
クリップボードには、テキスト、オーディオ ファイル、イメージなど、さまざまな形式のデータを格納できます。 クリップボード内のファイルの種類を確認するには、ContainsAudio、ContainsFileDropList、ContainsImage、ContainsText などのメソッドを使用します。 確認対象にカスタム形式が含まれる場合は、ContainsData メソッドを使用できます。
ContainsImage
関数を使用すると、クリップボードに含まれるデータがイメージかどうかを確認できます。 次のコードでは、データがイメージかどうかを確認し、それに応じて報告します。
If My.Computer.Clipboard.ContainsImage() Then
MsgBox("Clipboard contains an image.")
Else
MsgBox("Clipboard does not contain an image.")
End If
クリップボードのクリア
Clear メソッドはクリップボードをクリアします。 クリップボードは他のプロセスによって共有されているため、クリップボードをクリアすると、こうしたプロセスに影響することがあります。
Clear
メソッドの使用例を次のコードに示します。
My.Computer.Clipboard.Clear()
クリップボードへの書き込み
SetText メソッドを使用して、クリップボードにテキストを書き込みます。 次のコードでは、"This is a test string" という文字列をクリップボードに書き込みます。
My.Computer.Clipboard.SetText("This is a test string.")
SetText
メソッドは、TextDataFormat 型を含む書式パラメーターを受け取ることができます。 次のコードでは、"This is a test string" という文字列を RTF テキストとしてクリップボードに書き込みます。
My.Computer.Clipboard.SetText("This is a test string.",
System.Windows.Forms.TextDataFormat.Rtf)
SetData メソッドを使用して、クリップボードにデータを書き込みます。 この例では、DataObject
dataChunk
をカスタム書式 specialFormat
でクリップボードに書き込みます。
My.Computer.Clipboard.SetData("specialFormat", dataChunk)
SetAudio メソッドを使用して、クリップボードにオーディオ データを書き込みます。 この例では、バイト配列 musicReader
を作成し、cool.wav
ファイルを読み込んでから、それをクリップボードに書き込みます。
Dim musicReader = My.Computer.FileSystem.ReadAllBytes("cool.wav")
My.Computer.Clipboard.SetAudio(musicReader)
重要
クリップボードには他のユーザーもアクセスできるため、パスワード、機密データなどの機密情報は格納しないでください。
関連項目
.NET