やりたいこと
 AのプログラムからBのプログラムを非同期で起動する。(Aはその後終了)
 CのプログラムからBのプログラムを終了させる。

やってみたこと
 AのプログラムはCreateProcessでBのプログラムを単純に起動してそのまま終了。
 BにはサンプルによくあるコールバックのWndProcに、WM_CLOSEとかを作っておく。
 Cのプログラムで、イメージ名(B実行体)をキーにプロセス一覧からプロセスIDを取る。
  プロセスIDをOpenProcessに引き渡してプロセスハンドルを得る。(PROCESS_ALL_ACCESS)
  そのハンドルにPostMessageでWM_CLOSEを投げてみる。
   ★何も起きない
   ・そのハンドルにTerminateを実行すると強制終了はできる。

何か根本的に間違っていたらごめんなさい。