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

createprocessで起動させる別.exeをモーダルで起動したい

お世話になります。

VC++6.0 MFCで開発しております。

現在A.exeのあるボタンを押すとcreateprocessでB.exeを起動させるようにしております。

B.exeを起動後、A.exeの画面表示をクリックするとA.exeがアクティブになるのです。
それを、B.exeが終了しないとA.exeがアクティブにならないように変更したいのですがどのようにすればよいでしょうか?
現状は
PROCESS_INFORMATION pi;
STARTUPINFO si;
si.cb=sizeof(si);
CreateProcess(実行EXEパス,コマンドライン,NULL,NULL,TRUE,NORMAL_PRIORITY_CLASS,NULL,NULL,&si,&pi);
で起動しております。

また、実現不可能というお答えでもいいので教えていただければと思います。
お手数ですが何卒よろしくお願いします。

A 回答 (1件)

CreateProcessで作成したプロセスのプロセスIDを監視し、そのプロセスIDが有効である間、以下のページの例のように、WM_MOUSEACTIVATEに対してNO_ACTIVATEを返せば良い。



http://d.hatena.ne.jp/kent013/20080304/1204640570

但し、マウス以外の操作(例えばAlt+Tab)によるアクティブ化は上記の方法では防げないので、その場合は「WM_ACTIVATEでアクティブ化を要求されたら、今までアクティブだったウィンドゥを強制的にアクティブ化する」などの処理で、自分自身を非アクティブにすれば良い。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています