前872 |>>869 |英語版も合わせてよく読め。SPIF_SENDWININICHANGE | SPIF_UPDATEINIFILE を |指定するのは、SetForegroundWindowの動作を、95,NT4と同じようにするために |アプリのインストール時に恒久的に変更する場合のことだ。 アプリのインストール時に恒久的に変更する必要は無い、SetForegroundWindowを 呼び出す直前にFOREGROUNDLOCKTIMEOUTを一時的に変更する方法で問題無いという 指摘と思います。 英語版 KB97925 On Microsoft Windows 98 and Microsoft Windows 2000, SetForegroundWindow is subject to limitations. If an application requires that SetForegroundWindow behave the same on all platforms, the foreground lock timeout value should be changed when the application is installed. On Windows 2000, the SystemParametersInfo call fails unless the calling thread can change the foreground window, so this must be called from a setup or patch application. 私はこれは、Windows 2000ではSystemParametersInfoでFOREGROUNDLOCKTIMEOUTを 変更するためには呼び出し元のスレッドでフォアグラウンドウィンドウを変更 できる必要があり、そのためにはアプリのインストール時にFOREGROUNDLOCKTIMEOUT 値を恒久的に変更する必要がある(SetForegroundWindowを呼び出す直前に一時的 に変更する方法では駄目)と読み取りました。 そう考えたのは一時的に変更するタイミングでアプリがフォアグラウンドウィンドウ を変更できる保証は無いが、アプリのインストールプログラムは使用者によって フォアグラウンドウィンドウにされている状態が必ずあるはずなので SystemParametersInfoを成功させることができると考えました。 恒久的に変更する必要は無いというのはなぜでしょうか。