Command Line を取得する

Command Line から渡された文字列を MessageBox に表示します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの設定

  1. 新規プロジェクトで[空のプロジェクト]を作成します。
  2. メインプログラムのソースコードです。
    /**************************************************/
    /*★ Command Line の文字列を表示する    前田 稔 ★*/
    /**************************************************/
    #include    <windows.h>
    
    //wsprintf() の最大長は 1024 です
    char    buf[1024];
    
    //★ Windows Main 関数
    int  WINAPI  WinMain(HINSTANCE hInst, HINSTANCE, LPSTR lpCmdLine, int nCmdShow)
    {
        wsprintf(buf,"[%s]",lpCmdLine);
        MessageBox(NULL,buf,"Command Line の文字列",MB_OK);
        return 0;
    }
        
  3. [デバッグ] を選択してビルドに続いて実行を行います。
    実行が始まるとメッセージボックスに [] が表示されるだけです。
  4. このプログラムは次の方法で起動して下さい。
    1. [スタート][ファイル名を指定して実行] からプログラム名と引数をタイプして起動します。
      【例】プログラム名を CmdLine.exe と仮定して C:\ のフォルダーに格納されているものとします。
      C:\CmdLine.exe ABCxyz
      メッセージボックスに [ABCxyz] が表示されます。
    2. CmdLine.exe にファイル(種類は問わない)をドラッグ&ドロップして下さい。
      ドラッグ&ドロップされたファイル名がフルパスで表示されます。
  5. 空白が含まれているフォルダーからドラッグ&ドロップしたときは要注意です。
    文字列を表示すれば解るのですが、両側が「" "」で囲まれています。
    ファイル名として使うときは、これを取り除かなくてはなりません。
    例えば「"C:\Documents and Settings\test.txt"」をオープンするときは「C:\Documents and Settings\test.txt」とします。
    取り除くときは lpCmdLine を直接編集しないで、作業領域にコピーして行うのがルールです。

【メモ】

  1. Command Line の文字列が空であることを調べるソースコードです。
        if (lpCmdLine==NULL || *lpCmdLine=='\0')
        {
            MessageBox(NULL,"コマンドラインの文字列が空です","Command Line",MB_OK);
        }
    
  2. ファイルの拡張子をこのプログラムと関連付けて、ダブルクリックで起動することもできます。
    渡されたファイル名の両側が「" "」で囲まれているので、取り除いてください。

超初心者のプログラム入門(Win32API C++)