Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
アプリ終了後もクリップボードに保持したい
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=9130#CommentId11610
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
wanta
 (社会人)
投稿日時
2009/5/22 03:49:01
はじめまして。
2008を使用しています。
フォームにボタンを1つ置いて、クリックすると文字をクリップボード経由で
他のアプリに貼り付けを行っていますが、既にクリップボードにデータが
ある場合は一端変数に保存しておき、貼り付け後にまた戻しておくように
したいのですが、下記コードでテストすると、テキストデータの場合は
保存されるのに、それ以外(ファイル等)のデータの場合は、アプリを終了させると
クリップボードのデータが消えてしまいます。
クリップボードにデータを戻す際に
「My.Computer.Clipboard.SetDataObject(iData, True)」
とすると「引数が多すぎます」と出てしまいます。
なにか解決方法はあるでしょうか?
宜しくお願いします。
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim AddStr As String = "aaa"
If My.Computer.Clipboard.ContainsText() = True Then
Dim tData As String = My.Computer.Clipboard.GetText
My.Computer.Clipboard.SetText(AddStr)
SendKeys.Send("%({TAB})")
Sleep(100)
SendKeys.Send("^(v)")
My.Computer.Clipboard.SetText(tData)
Else
Dim iData As IDataObject = My.Computer.Clipboard.GetDataObject()
My.Computer.Clipboard.SetText(AddStr)
SendKeys.Send("%({TAB})")
Sleep(100)
SendKeys.Send("^(v)")
My.Computer.Clipboard.SetDataObject(iData)
End If
End Sub