クリップボードを介して文字列を送りたい

解決


まー2  2007-03-12 06:49:05  No: 98265

他のアプリへ貼り付けるプログラムを作ろうと思い試行錯誤中です。
クリップボードを介して送る方法で行くことにしたのですが
メモ帳で試してもなかなかうまくいきません。
123
456
となる考えなのですが両方とも456になってしまいます。
何がいけないのでしょうか?ご教授願います。

Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        AppActivate("無題")
        cliptext("123")
        cliptext("456")
    End Sub
    Private Sub cliptext(ByVal sendtext As String)
        My.Computer.Clipboard.Clear()
        My.Computer.Clipboard.SetText(sendtext)
        My.Computer.Keyboard.SendKeys("^v{down}")
    End Sub
End Class


通ってみた  2007-03-12 08:44:36  No: 98266

それでメモ帳がアクティブになってますか?
「無題 - メモ帳」とか


まー2  2007-03-12 21:22:58  No: 98267

今回のはクリップボードを介しての貼り付けの動作テストが目的なので
あらかじめメモ帳は起動してあり、ちゃんとアクティブになってます。
{down}で次の行に移る仕組みなので改行も最初から用意してます。

貼り付けも1行だけならうまく行くのですが。試しにもう1行、
cliptext("789")をつけたら全部789になってしまいました…。


通ってみた  2007-03-13 06:26:39  No: 98268

じゃぁ単にSendKey前に2周しちゃってるんではないかと
少しウエイト入れてみては?


ま−2  2007-03-13 07:40:09  No: 98269

sendkeys("^v{down}" , True)として結果を待つようにしたら
無事うまくいきました。
回答どうもありがとうございました。


※作成する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。







   このエントリーをはてなブックマークに追加