2010/04/03(Sat) 16:38:58 編集(投稿者)
おかげさまで貼り付けが完了するまで待機できるようになりました。
コード------------------------------------------
Public Class DataObjectEx
Inherits System.Windows.Forms.DataObject
Private _Pasted As Boolean
Public ReadOnly Property Pasted() As Boolean
Get
Return _Pasted
End Get
End Property
Public Overrides Function GetData(ByVal format As String, ByVal autoConvert As Boolean) As Object
Me._Pasted = True
Return MyBase.GetData(format, autoConvert)
End Function
End Class
------------------------------------------------
このように DataObject クラスを継承します。
コード------------------------------------------
Dim data As New Youryella.Windows.Forms.DataObjectEx
data.SetText("a")
Clipboard.SetDataObject(data, False)
SendPasteKey()
Application.DoEvents()
While (Not data.Pasted)
Application.DoEvents()
Thread.Sleep(10)
End While
------------------------------------------------
SetDataObject に copy:=False を渡すと GetData メソッドが呼び出されるまで、待つことができるようになりました。
Ctrl+V を送信した後に GetData メソッドが呼ばれるまで待機します。
なぜか Application.DoEvents を呼び出さないと無限ループになってしまいますが、
一応このコードで貼り付けが完了するまで待機することができました。
(Application.DoEvents が気持ち悪い・・・)
コピーが完了するタイミングはわかりませんでしたが、
貼り付け完了まで待機できるようになりました。
みなさん、ありがとうございました。