CreateProcess でプログラムを起動する

Windows 標準の CreateProcess でプログラムを起動します。
プログラムの起動には CreateProcess を使う方法と Shell を使う方法があります。
Shell を使う方法は 関連付けられたプログラムを起動する を参照して下さい。

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

プロジェクトの設定

  1. 新規プロジェクトで[空のプロジェクト]を作成します。
  2. メインプログラムのソースコードです。
    /***************************************************/
    /*★ CreateProcess でプログラムを起動    前田 稔 ★*/
    /***************************************************/
    #include    <windows.h>
    STARTUPINFO          si;
    PROCESS_INFORMATION  pi;
    
    //★ Windows Main 関数
    int  WINAPI  WinMain(HINSTANCE hInst, HINSTANCE, LPSTR lpCmdLine, int nCmdShow)
    {   BOOL    ret;
    
        ZeroMemory(&si,sizeof(STARTUPINFO));
        ZeroMemory(&pi,sizeof(PROCESS_INFORMATION));
        si.cb= sizeof(STARTUPINFO);
        ret= CreateProcess(NULL,"notepad Main.cpp",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
        if (ret==TRUE)  MessageBox(NULL,"正常に起動しました","CreateProcess",MB_OK);
        else            MessageBox(NULL,"エラーで起動できません","CreateProcess",MB_OK);
        return 0;
    }
    
  3. notepad を起動して、プログラムのソースコードを表示します。
    Main.cpp はこのプログラムのソースファイルの名前です。
  4. 現在の Windows Program では CreateProcess() でプログラムを起動します。
    CreateProcess() はプロセスの起動を開始して、すぐにリターンします。

【演習】

  1. 何か簡単な windows プログラムを作成して CreateProcess() 関数で起動してみて下さい。
  2. 何か簡単な console プログラムを作成して CreateProcess() 関数で起動してみて下さい。
    windows program でも console program でも起動出来ることを確かめて下さい。

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