AllowSetForegroundWindow

指定したプロセスが SetForegroundWindow 関数を使用して前面ウィンドウを設定できるようにする。呼び出し元プロセスは既に前面ウィンドウを設定できる必要がある。詳細は本トピックの後の備考を参照。

AllowSetForegroundWindow dwProcessId

dwProcessId : [int] 型: DWORD 前面ウィンドウを設定できるようにするプロセスの識別子。このパラメータが ASFW_ANY の場合、すべてのプロセスが前面ウィンドウを設定できるようになる。

(プラグイン / モジュール : user32.dll)

解説

指定したプロセスが SetForegroundWindow
関数を使用して前面ウィンドウを設定できるようにする。呼び出し元プロセスは既に前面ウィンドウを設定できる必要がある。詳細は本トピックの後の備考を参照。

[戻り値]
型: BOOL 関数が成功した場合、戻り値は 0 以外。関数が失敗した場合、戻り値は
0。呼び出し元プロセスが前面ウィンドウを設定できない場合、関数が失敗する。拡張エラー情報を取得するには GetLastError を呼ぶ。

[備考]
システムはどのプロセスが前面ウィンドウを設定できるかを制限する。通常、プロセスが SetForegroundWindow
を呼んで前面ウィンドウを設定できるのは次の条件をすべて満たす場合に限られる: 呼び出し元プロセスが UWP アプリや Windows
8/8.1 向けの Windows ストアアプリではなく、デスクトップアプリケーションに属している。前面プロセスが
LockSetForegroundWindow を呼んで SetForegroundWindow
を無効化していない。前面ロックのタイムアウトが経過している (SystemParametersInfo の
SPI_GETFOREGROUNDLOCKTIMEOUT を参照)。アクティブなメニューが存在しない。さらに次のいずれか 1
つ以上が真である必要がある:
呼び出し元プロセスが前面プロセスである。呼び出し元プロセスが前面プロセスから起動された。現在前面ウィンドウが存在せず、したがって前面プロセスも存在しない。呼び出し元プロセスが最後の入力イベントを受け取った。前面プロセスまたは呼び出し元プロセスがデバッグ中である。前面ウィンドウを設定できるプロセスは、AllowSetForegroundWindow
を呼ぶことで他のプロセスにも前面ウィンドウを設定する権限を与えられる。dwProcessId
で指定されたプロセスは、ユーザが次に入力を生成する (その入力がそのプロセス向けでない場合) まで、または次に別のプロセスが
AllowSetForegroundWindow を呼ぶ (前回と同じプロセスを指定する場合を除く)
まで、前面ウィンドウを設定する能力を失う。

情報

プラグイン / モジュールuser32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の user32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_user32_gen2.hs