GetCommandLineW
現在のプロセスに渡されたコマンドライン文字列全体を返すWin32 API。OSが実行ファイル名にフルパスを補うことがあるため、親がCreateProcessに渡した文字列と完全には一致しない場合がある。
- 概念URI
https://comcomponent.com/knowledge/getcommandlinew/
- 別名・表記
- GetCommandLine
- 最終確認日
- 2026-08-01
- 機械可読データ
- JSON-LD
この概念が関わる関係
- コマンドライン文字列(lpCommandLine)はGetCommandLineWで確認できます。子プロセスは自分に渡されたコマンドライン文字列全体をGetCommandLineWで取り出せる。起動時にこの値をログに残しておくと、どんな文字列で起動されたかを後から確認できるが、引数にパスワードやトークンが含まれる設計ではそのまま保存せず、分割後に機密になり得る値を伏せ字にして記録するか、生の記録は限定した診断モードでだけ有効にする。cmd.exeやバッチが挟まっている場合、見えるのはその段が作り直した文字列で、呼び出し側の元の文字列は呼び出し側のログでしか分からない。 / 確度: 条件付きの関係 / 確認日: 2026-09-02 出典
- CommandLineToArgvWはGetCommandLineWを利用します。CommandLineToArgvWは呼び出し側が渡した任意のコマンドライン文字列を分割する関数で、GetCommandLineWを自分で呼ぶわけではない。受け取り側で自分の引数を得る典型的な使い方として、GetCommandLineWの戻り値をCommandLineToArgvWに渡すとargv形式の配列が得られる。 / 確度: 条件付きの関係 / 確認日: 2026-09-02 出典 出典
- .NETランタイムの引数分割はGetCommandLineWを利用します。ランタイム自身の分割コード(SegmentCommandLine)がGetCommandLineWの戻り値を分割するのは、起動時の引数を受け取らないホストされたライブラリの構成でのフォールバックに限られる。apphostやdotnet.exeで起動した通常の構成では、ホストのCランタイム起動コードが分割し、ホスト用オプションとアプリのパスを除いた引数をランタイムが起動時に受け取り、先頭にプログラム名を足した配列をGetCommandLineArgs用に保持し、Mainのargsにはプログラム名を除いた引数を渡すため、ランタイム自身はGetCommandLineWを分割しない。ネイティブホストが独自のargc/argvを渡す構成でもMainのargsはホストが渡した値になる。 / 確度: 条件付きの関係 / 確認日: 2026-09-03 出典 出典 出典 出典
- コマンドラインのログ記録(呼び出し側・起動時)はGetCommandLineWを利用します。起動したプログラム側でコマンドラインをログに記録する場合は、GetCommandLineWが返す文字列(または分割後の引数)を材料にする。呼び出し側のログは起動前のバッファやArgumentListの要素を材料にするため、GetCommandLineWは使わない。 / 確度: 条件付きの関係 / 確認日: 2026-09-02 出典
この概念を扱う記事
一次資料
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。