朔の制御方法

以前は、朔のGUIを表示しないデーモン版のsaku.exeをこちらで作ろうと思っていました。これは、TkSakuはウィンドウ(GUI)を表示するため、ユーザの操作によって終了されてしまう可能性があったので、朔をユーザから見えなくするために、GUIを表示しないバージョンを作るという案でした。
しかし、今日ふと、GUIも消せることを思い出したので試したところ、Hovenの起動時に一瞬チラッと出ますが、見えないようにできました。これで、オフィシャルのWinSakuパッケージをそのまま使えます。
また、TkSakuのログ画面を見たい場合もあるので、「表示→TkSaku」のチェックON/OFFでTkSakuの表示/非表示を切りかえれるようにしました。こうすると、TkSakuを終了させられる危険性がありますが、それを表示しようとするユーザは、それくらい分かるだろうということで気にしないことにします。

表示/非表示の方法は、『CreateProcess』でTkSakuプロセスを作成し、そのスレッドIDをもつウィンドウを『EnumWindows』によって検索・発見し、そのハンドルに対する『ShowWindow』で表示/非表示を切り替えるというものです。ウィンドウハンドルのスレッドIDは『GetWindowThreadProcessId』で取得できます。

なかなか、『Windows』してきました。