■
別のプロセスに対してCtrl+CやCtrl+Breakを送る方法。
これは、自分自身にはCtrl+Cが送信できることを利用している。
以下が簡単な処理の流れ
AllocConsole ★AllocConsoleを行うと
AttachConsoleに失敗しても問題なくなるHACKコード
FreeConsole ★即デタッチ
AttachConsole ・プロセスのコンソールへアタッチ
ここで失敗すると二度とアタッチできないので
↑の★のHACKコードが必要になる
SetConsoleCtrlHandler(add) ・Ctrl+Cを送信する準備
GenerateConsoleCtrlEvent ・Ctrl+Cをコンソールへ送信する。
その際、自分はハンドラでtrueを返す事。
そうしないと自分も終わってしまう。
WaitForExit ・プロセスが終わるのを待つ。
Ctrl+Cが自分に来るまで待つ必要もある。
SetConsoleCtrlHandler(false) ・必ず最後にCtrl+Cを送信の後始末
FreeConsole ・必ず最後にコンソールからデタッチ