ココアミックス
cocoamix.exblog.jp
ブログトップ
ウィンドウのアクティブ化メモ
WindowsOS ウィンドウのアクティブ化に関して




フォアグラウンドのウィンドウが存在する場合、
別のAPLがフォアグラウンドになろうとすると、タスクバー上で点滅するだけ。

別のAPLウィンドウをフォアグラウンドにするには、
現在フォアグラウンドのプロセスに、アタッチしないといけない。

別の方法として、
このアクティブ化の仕様になってからWindowsのシステムパラメータとなった
フォアグラウンドのロックタイムアウト値を
0にしてあげればいいんだけど、
設定を変更できるのは、フォアグラウンドのAPLだけで、
変更をそのままにしておくと、他のAPLにも影響がでる。

なので、アタッチの方法を通常利用するのかな。


別の方法として考えると
起動時にAllowSetForegroundWindowを自身にやっておきつつ、
自分がフォアグラウンドになった場合に、再度Allowとか
他APLがAllowSetForegroundWindowしない限り自分のウィンドウがフォアグラウンドにならないか
と思ったけど、入力かわるとダメっぽい記述がある
試してないので不明。

Aがアクティブのときに、バックにいるBをアクティブにしたいときは、
AからBに対してAllowSetForegroundWindowしないとか。

なんにせよAから呼び出せないと無理かなー。
[PR]
by nyamz | 2009-04-25 12:21 | IT関連