以下は、prj1、prj2、prj3、prj4 というプロジェクトを、
VBScriptでバッチ処理する例です。
Const TITLE_STR = "TMPGEnc"
Set WshShell = WScript.CreateObject("WScript.Shell")
Enc_sub("prj1.tda3")
Enc_sub("prj2.tda3")
Enc_sub("prj3.tda3")
Enc_sub("prj4.tda3")
Function Enc_sub(PRJ_FILE)
'--- TMPGEncプロジェクト起動 --
WshShell.Run PRJ_FILE,1,FALSE
'--- 起動待ち -----------------
WScript.Sleep 1000*20 ' 20sec
'WScript.Sleep 1000 ' 1sec
'--- '前回自動シャットダウンで終了しました' を閉じる ---
WshShell.Run "click_xy.exe 750,610",1,TRUE' <--------
WScript.Sleep 1000 ' 1sec
'--- メインメニュー切り替え ---
WshShell.SendKeys("{F9}")
WScript.Sleep 1000 ' 1sec
'--- 書き出しボタンを押す -----
WshShell.Run "click_xy.exe 280,700",1,TRUE ' <--------
'--- エンコ終了待ち -----------
do while WshShell.AppActivate(TITLE_STR)
WScript.Sleep 10000 ' 10sec
loop
WScript.Sleep 1000*30 ' 30sec
End Function
<-------- で示した行は、ボタンのx,y座標を各自調整してください。
TMPGEnc Author3 のウィンドウを最大化すれば、
ボタンのx,y座標は、一意に決まると思います。
また、上記スクリプト内で呼んでいる、
click_xy.exe
のソースは、以下の通りです。(VC++6.0でコンパイルできます。)
#include <windows.h>
int WINAPI WinMain(HINSTANCE hCurInst,HINSTANCE hPrevInst,LPSTR lpsCmdLine,int nCmdShow)
{
int x=100,y=100;
char *tok;
char buf[64];
if(lpsCmdLine[0]!='\0'){
strcpy(buf,lpsCmdLine);
tok = strtok(buf," ,\"");
if(tok!=NULL) x = atoi(tok);
tok = strtok(NULL," ,\"");
if(tok!=NULL) y = atoi(tok);
}
SetCursorPos(x,y);// on target
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
return 0;
}
以上です。