次の方法で共有


AllowSetForegroundWindow 関数 (winuser.h)

SetForegroundWindow 関数を使用して、指定したプロセスでフォアグラウンド ウィンドウを設定できるようにします。 呼び出し元のプロセスは、フォアグラウンド ウィンドウを既に設定できる必要があります。 詳細については、このトピックで後述する「解説」を参照してください。

構文

BOOL AllowSetForegroundWindow(
  [in] DWORD dwProcessId
);

パラメーター

[in] dwProcessId

型: DWORD

フォアグラウンド ウィンドウの設定が有効になるプロセスの識別子。 このパラメーターが ASFW_ANYされている場合、すべてのプロセスがフォアグラウンド ウィンドウを設定できるようになります。

戻り値

型: BOOL

関数が成功した場合、戻り値は 0 以外です。

関数が失敗した場合、戻り値は 0 です。 呼び出し元のプロセスがフォアグラウンド ウィンドウを設定できない場合、関数は失敗します。 拡張エラー情報を取得するには、GetLastError呼び出します。

注釈

フォアグラウンド ウィンドウを設定できるプロセスは、システムによって制限されます。 通常、プロセスは、次の場合にのみ SetForegroundWindow 関数を呼び出すことによってフォアグラウンド ウィンドウを設定できます。

  • 次の条件はすべて当てはまります。
    • 呼び出しプロセスは、UWP アプリや Windows 8 または 8.1 用に設計された Windows ストア アプリではなく、デスクトップ アプリケーションに属しています。
    • 前景プロセスでは、 LockSetForegroundWindow 関数の以前の呼び出しによって SetForegroundWindow の呼び出しが無効にされていません。
    • アクティブなメニューはありません。
  • さらに、次の条件のうち少なくとも 1 つが当てはまります。
    • フォアグラウンド ロックタイムアウトの有効期限が切れています (SystemParametersInfoのSPI_GETFOREGROUNDLOCKTIMEOUT参照してください)。
    • 呼び出し元のプロセスがフォアグラウンド プロセスです。
    • 呼び出し元のプロセスは、フォアグラウンド プロセスによって開始されました。
    • 現在、フォアグラウンド ウィンドウがないため、フォアグラウンド プロセスはありません。
    • 呼び出し元のプロセスは、最後の入力イベントを受信しました。
    • フォアグラウンド プロセスまたは呼び出し元プロセスのいずれかがデバッグ中です。

フォアグラウンド ウィンドウを設定できるプロセスでは、 AllowSetForegroundWindow を呼び出すことによって、別のプロセスでフォアグラウンド ウィンドウを設定できます。 dwProcessId パラメーターで指定されたプロセスは、ユーザーが次に入力を生成したときにフォアグラウンド ウィンドウを設定する機能を失います。ただし、入力がそのプロセスで送信されない限り、または次に AllowSetForegroundWindow を呼び出す場合は、AllowSetForegroundWindow の前の呼び出しと同じプロセスが指定されている場合を除きます。

Requirements

Requirement 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の Windows
Header winuser.h (Windows.h を含む)
Library User32.lib
DLL User32.dll
API セット ext-ms-win-ntuser-window-l1-1-0 (Windows 8 で導入)

こちらも参照ください

概念

LockSetForegroundWindow

リファレンス

SetForegroundWindow

ウィンドウズ