他のアプリの複数のComboboxからデータを取得するには?

解決


PH  2002-01-31 08:41:26  No: 513  IP: [192.*.*.*]

他のアプリのウィンドウハンドルを取得し
そのウィンドウの最初のEditなりComboboxなりの
内容は取得できるのですが、複数ある場合はどういうコードを
書けばいいのでしょうか?
いろいろ試したのですがまったくもって解決しません。(;;)

編集    削除
にしの  2002-01-31 09:07:10  No: 514  IP: [192.*.*.*]

複数取得の場合はEnumChildWindowsを使用します。
GetWindowを続けて呼び出すことでもできますが、破棄したウィンドウを拾ったり無限ループに陥ったりする場合があるので危険と書いてありました。

編集    削除
PH  2002-02-01 15:11:33  No: 515  IP: [192.*.*.*]

ありがとうございます。

ところでこんな感じでしょうか?

lbCWinListはリストボックスです。

EnumChildWindows(hWnd,@EnumCWinProc,Integer(lbCWinList.Items));

function EnumCWinProc(h:HWND;lparam:Integer):BOOL;stdcall;  
var
   list:TStrings;
   buf:Array[0..255] of char;
   classname:String;
begin
     list := TStrings(lparam);
     GetClassName(hWnd,buf,255);
     classname := StrPas(buf);
     list.AddObject(Format(' %10x : %-s',[Integer(hWnd),classname]),TObject(hWnd));
     result := True;
end;

ん〜何かか間違っているような気がする・・・(^ ^);
また何かありましたら宜しくお願いいたします。

編集    削除
マルチポストはマナー違反ですよ  2002-02-02 08:29:00  No: 516  IP: [192.*.*.*]

Borland Maniacs!さん
http://member.nifty.ne.jp/h_kova/
の新プログラミング会議室プログラミング入門 ☆ Delphi 
にマルチポストですよね。

▽ 2002/1/30 (水) 23:41:41 ▽ PH 
PH 2002/01/30(水) 23:41:26

コピー&ペーストで20秒しか違わないってことは、
「どっちかで答えが出ればいいや」ってことですよね?
かなり悪質だと思うんですけど。

編集    削除
PH  2002-02-02 09:16:45  No: 517  IP: [192.*.*.*]

BBS(パソ通)時代の悪いクセが・・・
あのころは知ってる人に出会うまでガシガシと質問してたもので。
以後  気をつけます。m(_ _)m

編集    削除