CreateEnvironmentBlock

指定ユーザーの環境変数を取得する。このブロックは 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
URLhttps://github.com/inovia/IronHSP
備考Win32 API の userenv.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_userenv_gen2.hs