2014年4月2日水曜日

SetForegroundWindowについて

ちょっとね、今日は少しイラっときてます。
今更SetForegroundWindowについて語ることになるとは・・・

http://msdn.microsoft.com/ja-jp/library/cc411039.aspx

日本語のMSDNの記述によると、
「次の条件が満たされていなければ、プロセスがフォアグラウンドウィンドウを設定することはできません。」
と書かれてて、
その下に条件がいくつか書かれてるのです。

自分はその条件が全部満たされないとこの関数は動かんのだなぁと理解しました。
(多分日本人はみんなそう理解すると思います)

ところが・・・
 http://msdn.microsoft.com/en-us/library/windows/desktop/ms633539%28v=vs.85%29.aspx
こっちには以下の様に書かれてます。
「A process can set the foreground window only if one of the following conditions is true: 」

「どれか一つがTrueだったら」って書かれてるわけですよ

おいおい・・・日本語間違ってんじゃん!

だから、SetForegroundWindowを成立させるために、
AttachThreadInput使ったり、SystemParametersInfo使ったりと、
その他本来必要の無い前提条件をクリアするためのコードが散乱するわけです。

一個でいいんだって!
みんな気をつけるように!