プロが教える店舗&オフィスのセキュリティ対策術

以下のようなことをしようとしています。

・メモ帳などのエディタが起動されている。
・エディタは一番上のウィンドウとして存在していて、入力場所でカーソルが点滅している。
・別プロセスからそのウィンドウにメッセージを送り、文字を表示させたい。

GetForegroundWindow()で取得したハンドルにメッセージを投げましたが何も表示されませんでした。
なので、エディタの親ウィンドウではなく、アクティブな子ウィンドウにメッセージを投げなければならないと思い、以下の処理で子ウィンドウのハンドルを取得しようと思いました。

 hWndWork = GetForegroundWindow();
 if(hWndWork != NULL) {
  bSts = cWndWork.Attach(hWndWork);
  if(bSts != 0) {
   cWndTarget = cWndWork.GetActiveWindow();
   if(cWndTarget != NULL) {
    hWndTarget = cWndTarget->m_hWnd;
   }
  }
 }

結果としては「hWndWork 」と「hWndTarget 」は同じでした。

考え方や、上記の処理で間違っている点などがありましたら指摘願います。
また、エディタに表示する方法をご存知であればご教授願います。

A 回答 (1件)

それでは子ウィンドウは取れません。


親ウィンドウが分かったら、EnumChildWindows()でやGetWindow()で子ウィンドウは取得しましょう。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました。
参考にさせていただきました。
その後の調査により、別の関数で実現することができました。

お礼日時:2003/05/16 19:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!