適当に日々あったこととか書いてます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
BOOL SetForegroundWindow(
HWND hWnd // ウィンドウのハンドル
);
指定されたウィンドウを作成したスレッドをフォアグラウンドにし、そのウィンドウをアクティブにします。
キーボード入力はこのウィンドウに直接送られるようになり、ユーザーにこれがわかるように画面でのさまざまな表示が変更されます。
Windows システムは、フォアグラウンドウィンドウを生成したスレッドに対して、他のスレッドよりも若干高い優先順位を割り当てます。
<パラメータ>
・hWnd
アクティブにし、フォアグラウンドにするウィンドウのハンドルを指定します。
<戻り値>
ウィンドウがフォアグラウンドになったら、0 以外の値が返ります。
ウィンドウがフォアグラウンドにならなかった場合は、0 が返ります。
<解説>
フォアグラウンドウィンドウは、 の最も高いウィンドウであり、現在ユーザーが作業しているウィンドウです。
プリエンプティブなマルチタスク環境では、一般的には、どのウィンドウをフォアグラウンドウィンドウにするかの決定はユーザーに委ねます。
Windows 98、Windows 2000:フォアグラウンドウィンドウを設定することができるプロセスは、システムにより制限されます。
次の条件が満たされていなければ、プロセスがフォアグラウンドウィンドウを設定することはできません。
•そのプロセスがフォアグラウンドプロセスである。
•そのプロセスはフォアグラウンドプロセスにより開始された。
•そのプロセスが最後の入力イベントを受け取った。
•フォアグラウンドプロセスがない。
•フォアグラウンドプロセスがデバッグ中である。
•フォアグラウンドがロックされていない(LockSetForegroundWindow 関数の説明を参照)。
•フォアグラウンドロックのタイムアウトが発生している( 関数の SPI_GETFOREGROUNDLOCKTIMEOUT の説明を参照)。
•Windows 2000:アクティブなメニューがない。
この旧バージョンからの変更により、アプリケーションは、ユーザーが他のウィンドウで作業しているときに強制的にフォアグラウンドウィンドウを設定することはできなくなりました。
その代わりに、SetForegroundWindow 関数は、ウィンドウをアクティブにし(SetActiveWindow 関数の説明を参照)、 関数を呼び出してユーザーに通知します。
フォアグラウンドウィンドウを設定できるプロセスは、AllowSetForegroundWindow 関数を呼び出すことにより、他のプロセスにフォアグラウンドウィンドウを設定する能力を与えることができます。
この関数の dwProcessId パラメータで指定されたプロセスは、次にユーザーがそのプロセス以外のプロセスに対して入力操作を行ったときか、または他のプロセスの指定された AllowSetForegroundWindow 関数の呼び出しがあったときに、フォアグラウンドウィンドウを設定する能力を失います。
フォアグラウンドプロセスは、LockSetForegroundWindow 関数を呼び出すことにより SetForegroundWindow 関数の呼び出しを無効化できます。
<対応情報>
Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winuser.h で宣言、Windows.h をインクルード
インポートライブラリ:User32.lib を使用
引用:ttp://msdn.microsoft.com/ja-jp/library/cc411039.aspx
<使用メモ>
まぁそのまんま、指定したハンドルのアプリをアクティブにするために使用。
HWND hWnd // ウィンドウのハンドル
);
指定されたウィンドウを作成したスレッドをフォアグラウンドにし、そのウィンドウをアクティブにします。
キーボード入力はこのウィンドウに直接送られるようになり、ユーザーにこれがわかるように画面でのさまざまな表示が変更されます。
Windows システムは、フォアグラウンドウィンドウを生成したスレッドに対して、他のスレッドよりも若干高い優先順位を割り当てます。
<パラメータ>
・hWnd
アクティブにし、フォアグラウンドにするウィンドウのハンドルを指定します。
<戻り値>
ウィンドウがフォアグラウンドになったら、0 以外の値が返ります。
ウィンドウがフォアグラウンドにならなかった場合は、0 が返ります。
<解説>
フォアグラウンドウィンドウは、 の最も高いウィンドウであり、現在ユーザーが作業しているウィンドウです。
プリエンプティブなマルチタスク環境では、一般的には、どのウィンドウをフォアグラウンドウィンドウにするかの決定はユーザーに委ねます。
Windows 98、Windows 2000:フォアグラウンドウィンドウを設定することができるプロセスは、システムにより制限されます。
次の条件が満たされていなければ、プロセスがフォアグラウンドウィンドウを設定することはできません。
•そのプロセスがフォアグラウンドプロセスである。
•そのプロセスはフォアグラウンドプロセスにより開始された。
•そのプロセスが最後の入力イベントを受け取った。
•フォアグラウンドプロセスがない。
•フォアグラウンドプロセスがデバッグ中である。
•フォアグラウンドがロックされていない(LockSetForegroundWindow 関数の説明を参照)。
•フォアグラウンドロックのタイムアウトが発生している( 関数の SPI_GETFOREGROUNDLOCKTIMEOUT の説明を参照)。
•Windows 2000:アクティブなメニューがない。
この旧バージョンからの変更により、アプリケーションは、ユーザーが他のウィンドウで作業しているときに強制的にフォアグラウンドウィンドウを設定することはできなくなりました。
その代わりに、SetForegroundWindow 関数は、ウィンドウをアクティブにし(SetActiveWindow 関数の説明を参照)、 関数を呼び出してユーザーに通知します。
フォアグラウンドウィンドウを設定できるプロセスは、AllowSetForegroundWindow 関数を呼び出すことにより、他のプロセスにフォアグラウンドウィンドウを設定する能力を与えることができます。
この関数の dwProcessId パラメータで指定されたプロセスは、次にユーザーがそのプロセス以外のプロセスに対して入力操作を行ったときか、または他のプロセスの指定された AllowSetForegroundWindow 関数の呼び出しがあったときに、フォアグラウンドウィンドウを設定する能力を失います。
フォアグラウンドプロセスは、LockSetForegroundWindow 関数を呼び出すことにより SetForegroundWindow 関数の呼び出しを無効化できます。
<対応情報>
Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winuser.h で宣言、Windows.h をインクルード
インポートライブラリ:User32.lib を使用
引用:ttp://msdn.microsoft.com/ja-jp/library/cc411039.aspx
<使用メモ>
まぁそのまんま、指定したハンドルのアプリをアクティブにするために使用。
PR
この記事にコメントする