2019-07-25 23:08:58
非アクティブと最小化は別物
えーと、まず、2週目は、他の画面をアクティブにしているのでは無くて、電卓を最小化されていますよね? 電卓を「窓最前面」にしている以上、電卓のウィンドウが開いた状態で他の画面をアクティブにしても、非アクティブ状態の電卓が最前面に表示されちゃうはずです。 非アクティブとゆうのは、ウィンドウがフォーカスを失って、タイトルバーが灰色になってる状態、最小化は、ウィンドウを閉じて、タスクバーに入っちゃってる状態で、これは別の状態なんです。 730に書いた通り、「最小化してタスクバーに入っている物は、窓アクティブにしてもウィンドウは開かないし、プログラムから操作できない」のです。 タスクバーは光って、フォーカスが入り、プログラム上はアクティブになってることになる(窓アクティブハンドル取得や窓アクティブタイトル取得)んですが、ウィンドウは開かないし、キー送信その他の操作を行うことも出来ません。 不安定なんではなく、そうゆう仕様って話です。 ワタシは詳しくないからよう分からんですが、うぇいくさまが書かれているとうりの事情による制限と思われます。 と、ゆうわけで・・・ 11行目の「電卓*」を窓最前面 は外しても、アクティブになったらウィンドウは前面に出てくるハズなんですねー。 そして、電卓を最小化するんではなく、他のウィンドウをクリックして前面に出すことで、ウィンドウが開いた状態で電卓を非アクティブにすれば、2週目もこのプログラムでちゃんと窓アクティブ出来るハズです。 とりま、そこまで確認してみて下さいね~。 これが出来れば、プログラムは正常に動いています。 で、実際にやりたいことですが、Aのプログラムが終了したら、Bのプログラムが決まった位置に非アクティブで起動してくるから、それを自動的にアクティブにしたいとゆうことだったと思います。 だとしたら、ウィンドウは開いているはずですよね? であれば、窓アクティブで出来るんじゃないでしょうか? |