SwitchDesktop 関数 (winuser.h)
指定したデスクトップを表示し、アクティブにします。 これにより、デスクトップはユーザーから入力を受け取ることができます。 SwitchDesktop 関数を正常に実行するには、呼び出し元プロセスがデスクトップにDESKTOP_SWITCHDESKTOPアクセスできる必要があります。
構文
BOOL SwitchDesktop(
[in] HDESK hDesktop
);
パラメーター
[in] hDesktop
デスクトップへのハンドル。 このハンドルは、 CreateDesktop 関数と OpenDesktop 関数によって返されます。
このデスクトップは、プロセスの現在のウィンドウ ステーションに関連付けられている必要があります。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。 ただし、 SwitchDesktop では 、次の場合にのみ最後のエラーが設定されます。
- デスクトップが非表示のウィンドウ ステーションに属している場合
- hDesktop が無効なハンドルである場合、破棄されたデスクトップを参照している場合、または呼び出し元プロセスとは異なるセッションに属している場合
解説
デスクトップが非表示のウィンドウ ステーションに属している場合、 SwitchDesktop 関数は失敗します。 SwitchDesktop は、WinLogon や ScreenSaver デスクトップなどのセキュリティで保護されたデスクトップに関連付けられているプロセスから呼び出された場合にも失敗します。 セキュリティで保護されたデスクトップに関連付けられているプロセスには、カスタム UserInit プロセスが含まれます。 このような呼び出しは、通常、"アクセス拒否" エラーで失敗します。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |
API セット | ext-ms-win-ntuser-windowstation-l1-1-0 (Windows 8 で導入) |