SetThreadDesktop 関数 (winuser.h)
指定したデスクトップを呼び出し元のスレッドに割り当てます。 デスクトップに対する後続のすべての操作では、デスクトップに付与されたアクセス権が使用されます。
構文
BOOL SetThreadDesktop(
[in] HDESK hDesktop
);
パラメーター
[in] hDesktop
呼び出し元のスレッドに割り当てられるデスクトップへのハンドル。 このハンドルは、 CreateDesktop、 GetThreadDesktop、 OpenDesktop、または OpenInputDesktop 関数によって返されます。
このデスクトップは、プロセスの現在のウィンドウ ステーションに関連付けられている必要があります。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
呼び出し元のスレッドが現在のデスクトップにウィンドウまたはフックを持っている場合、 SetThreadDesktop 関数は失敗します ( hDesktop パラメーターが現在のデスクトップへのハンドルでない限り)。
警告 対話型デスクトップでウィンドウを開くサービスには、重大なセキュリティ リスクがあります。 デスクトップ ウィンドウを開くと、サービス自体がログオン ユーザーからの攻撃に対して脆弱になり、そのアプリケーションがサービスのデスクトップ ウィンドウに悪意のあるメッセージを送信し、その機能に影響を与える可能性があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | 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 で導入) |