他のプロセスのコントロール(テキストボックス)の文字を削除するには?


simo  2004-10-25 22:54:21  No: 86238  IP: [192.*.*.*]

こんばんは。API初心者です。宜しくお願いします。
今、他のプロセスのテキストボックスの文字をWM_GETTEXTで取得しています。ここまでは出来るのですが、その文字を削除したい時に、WM_CLEARを使用して削除しようとしたのですが、なかなか上手くいきません。
SendMessage ChWnd, WM_CLEAR, 0&, 0&
このような感じで記述しています。ハンドルは取得できているみたいです。
どのようにしたら、削除できるようになるでしょうか。

編集 削除
ガッ  2004-10-25 23:08:42  No: 86239  IP: [192.*.*.*]

WM_SETTEXTを使ってみるとか。

編集 削除
split( )  2004-10-26 02:09:32  No: 86240  IP: [192.*.*.*]

EM_SETSELでエディとコントロール内の文字を全て選択した後(wParam=0,lParam=-1)
WM_CLEARで消えるみたいですね。

編集 削除
java.lang.Nullpo  2004-10-26 09:29:22  No: 86241  IP: [192.*.*.*]

SendMessage()ではなく、SetWindowText()でやるべきでは? :-p

編集 削除
魔界の仮面弁士  2004-10-26 10:20:26  No: 86242  IP: [192.*.*.*]

他方のアプリも自作のプログラムなら、TextBoxのLink系メソッドで
DDE通信を行うと言う手もあるかも。

> SendMessage()ではなく、SetWindowText()でやるべきでは? :-p
自プロセスのテキストボックスなら、SetWindowText でもいけますが、
今回は「他のプロセス」ですから、WM_SETTEXT を使うべきかと。> java.lang.Nullpoさん

編集 削除
java.lang.Nullpo  2004-10-26 11:59:59  No: 86243  IP: [192.*.*.*]

をを、ホントですね。
しっかり読まずに回答しておりました。
他プロセスならば、SendMessage()になりますね。(^_^;
失礼しました。

編集 削除
simo  2004-10-26 17:45:06  No: 86244  IP: [192.*.*.*]

皆様有難うございます。
  SendMessage CLhWnd, EM_SETSEL, 0, -1 
  SendMessage CLhWnd, WM_CLEAR, 0, 0
文字列を選択するコードを追加してやってみたのですが、出来ませんでした。
今他のアプリのエディットボックスのようなものを対象としているのですが、
少し特殊なのかもしれません。つまり、普通マウスで文字列をドラッグすると
文字列が反転して選択されますが、そうなりません。あと、その部分を
クリップボードにコピーも出来ないので、EM_SETSELで文字列も選択できてな
い事が原因なのかもしれません。

編集 削除
Dental  2004-10-26 18:11:16  No: 86245  IP: [192.*.*.*]

> 今他のアプリのエディットボックスのようなものを対象としているのですが、
そもそも、CLhWnd で示されているウィンドウは、EditBoxなのでしょうか?
対象としているウィンドウを、SPYXX.EXE で確認してみてください。

編集 削除