1.BonDriverProxyEx.cppにコードを追加してビルド
// bat実行機能をつける
// 2行目の#include "BonDriverProxyEx.h"の下
#include <Windows.h>
#pragma comment(lib, "shell32.lib")
// ダミー実行状態を判定する変数
// 21行目のstatic int Init(HMODULE hModule)の上
static int g_Dummy = 1;
// ダミー以外に使用中のチューナーがなければクローズ
// 259行目のif (bRelease)の上
if (g_InstanceList.size() == 8)
{
g_Dummy = 1;
HINSTANCE bat = ShellExecute(NULL, L"open", L"cmd.exe", L"/c DummyClose.bat", NULL, SW_HIDE);
}
// ダミーが起動していなければ実行
// 412行目のmakePacket(eSelectBonDriver, b);の上
if (g_Dummy)
{
g_Dummy = 0;
HINSTANCE bat = ShellExecute(NULL, L"open", L"cmd.exe", L"/c DummyOpen.bat", NULL, SW_HIDE);
}
2.batを作成
DummyOpen.bat
// 手動実行時の多重起動回避のためDummyOpen.batかTSTaskを実行中なら終了
// timeout2秒はクローズとオープンのタイミングが重なってダミーが終了するのを回避するため
// クライアントのみでCS複数視聴した時ダミーがTSTaskx8だとドロップ再発するので1つだけTVTestにしている
tasklist /fi "windowtitle eq DummyOpen" | find "cmd.exe" >nul
if %errorlevel% == 0 exit
title DummyOpen
tasklist | find "TSTask.exe" >nul
if %errorlevel% == 0 exit
timeout 2
start "" "C:\BonDriverProxyExのフォルダ\TSTask.exe" /xclient- /d BonDriverProxyEx_S.dll
start "" "C:\BonDriverProxyExのフォルダ\TSTask.exe" /xclient- /d BonDriverProxyEx_S.dll
start "" "C:\BonDriverProxyExのフォルダ\TSTask.exe" /xclient- /d BonDriverProxyEx_S.dll
start "" "C:\BonDriverProxyExのフォルダ\TSTask.exe" /xclient- /d BonDriverProxyEx_S.dll
start "" "C:\BonDriverProxyExのフォルダ\TSTask.exe" /xclient- /d BonDriverProxyEx_T.dll
start "" "C:\BonDriverProxyExのフォルダ\TSTask.exe" /xclient- /d BonDriverProxyEx_T.dll
start "" "C:\BonDriverProxyExのフォルダ\TSTask.exe" /xclient- /d BonDriverProxyEx_T.dll
start "" "C:\BonDriverProxyExのフォルダ\TVTest.exe" /noplugin /d BonDriverProxyEx_T.dll /min /noshow
exit
DummyClose.bat
// 外側はダブル、内側はシングルクォート
// フォルダパスは\\でつなぐ
wmic process where "executablepath = 'C:\\BonDriverProxyExのフォルダ\\TSTask.exe'" delete
wmic process where "executablepath = 'C:\\BonDriverProxyExのフォルダ\\TVTest.exe'" delete
exit
3.BonDriverProxyExのフォルダに以下を配置
// TSTaskx8にするならch2とTVTestは不要
BonDriverProxyEx_S.dll
BonDriverProxyEx_S.ini
BonDriverProxyEx_T.ch2
BonDriverProxyEx_T.dll
BonDriverProxyEx_T.ini
ビルドしたBonDriverProxyEx.exe
DummyClose.bat
DummyOpen.bat
TSTask.exe
TVTest.exe
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}