指定ユーザーの環境変数を取得する。このブロックは CreateProcessAsUser に渡せる。
CreateEnvironmentBlock lpEnvironment, hToken, bInherit
lpEnvironment : [var] 型: LPVOID* 関数復帰時、新しい環境ブロックへのポインタを受け取る。環境ブロックは NULL 終端 Unicode 文字列の配列で、2 つの NULL (\0\0) で終わる。 hToken : [intptr] 型: HANDLE ユーザーのトークン。LogonUser などで取得する。プライマリトークンの場合は TOKEN_QUERY および TOKEN_DUPLICATE アクセスが必要。インパーソネーショントークンなら TOKEN_QUERY のみでよい。 bInherit : [int] 型: BOOL 現プロセスの環境を継承するか。TRUE で継承、FALSE で非継承。
(プラグイン / モジュール : userenv.dll)
指定ユーザーの環境変数を取得する。このブロックは CreateProcessAsUser に渡せる。 [戻り値] 型: BOOL 成功時は TRUE、失敗時は FALSE。拡張エラー情報は GetLastError で取得する。 [備考] 使用後は DestroyEnvironmentBlock でバッファを解放する。CreateProcessAsUser に渡す場合は CREATE_UNICODE_ENVIRONMENT フラグを必ず指定する。CreateProcessAsUser から復帰後、新プロセスは環境ブロックのコピーを持つため DestroyEnvironmentBlock を安全に呼べる。%USERPROFILE% などユーザー固有変数はユーザープロファイルがロードされているときのみ設定されるため、必要なら LoadUserProfile を呼ぶ。
| プラグイン / モジュール | userenv.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の userenv.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_userenv_gen2.hs |