VB.NET-IEやメモ帳などのテキストエリアにテキストを貼り付けるには


ABEILLE  URL  2003-11-28 18:14:22  No: 110288

たびたび質問ですみません。
過去ログに似たような内容があったのですが、.NETの内容はなかったのでお聞きしたいと思います。
.NETでアクティブになっているウインドウのテキストエリアにVBからテキストを貼り付けるにはどうしたらいいのでしょうか?
IEやメモ帳など一般のテキストエリアなのですが、ボタンをクリックするとそのテキストエリアにテキストを貼り付けるというコードを書きたいです。
APIを使うとできるらしいのですが、.NETでのAPIの宣言の仕方などがわからないので使えません。
回答よろしくお願いします。


通りすがり  2003-11-29 22:39:53  No: 110289

.NETでも標準モジュールを使って同じようにAPIが利用できると思いますが?


ねろ  2003-11-30 01:04:38  No: 110290

メモ帳に書き込むのは
Shell("notepad.exe", vbNormalFocus)  'メモ帳起動
AppActivate("無題 - メモ帳")          'フォーカスを当てる
SendKeys.Send("aaaaaaa")              '書き込む
    

メモ帳のハンドルを取るのはこれで
'API宣言
Private Declare Function FindWindowEx Lib "user32" Alias _
  "FindWindowExA" (ByVal hWnd1 As Integer, ByVal _
  hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer
'ハンドルをTextBoxに表示
TextBox1.Text = CStr(FindWindowEx(0, 0, vbNullString, "無題 - メモ帳"))


ABIELLE  2003-12-04 21:31:58  No: 110291

ありがとうございます!
あの追加なのですがほかの同じような記事を見たのですが開いているウインドウのテキストエリアに貼り付けるには、そのウインドウにCtrl+Vを送ればいいということが書いてあったのですが、どうやるのでしょうか?
よろしくおねがいします。


ねろ  2003-12-04 23:07:40  No: 110292

これはコピペの"ぺ"です。
SendKeys.Send("^V")  

ただしボタンを押した時フォーカスが移ってしまい
ターゲットのテキストエリアに張り付かないのでは。

VBから起動したメモ帳やIEなら
起動する時
Dim id As Integer  
id = Shell("C:\Program Files\Internet Explorer\IEXPLORE.EXE", vbNormalFocus)
等としておいて
書き込みは
AppActivate(id)
SendKeys.Send("^V")       '書き込む
これでいいわけですが沢山IEやメモ帳が開いている場合など、キャレットのあったIEを探さなければ
ならないので、面倒かも知れません。


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

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






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