質問: FindLogHandle(WindowHandle(Symbol(), Period()), Keyword); if(LogHandle <= 0){ Print(Keyword); //探索用キーワードを再出力 return(0); } } //ログの行数を調べる if(GetLogRowCount(LogHandle) > 0){ //先頭行のログを取得する if(GetLogData(LogHandle, 1, Buff, BUFF_SIZE) > 0) Comment(Buff); //コメントに表示 } return(0); } ```
回答: ダメ元で作者の方にメールしたら帰ってきました。 MT4の仕様変更により現状では使えない状態でした。 Dllはそのまま使えるようです ``` // ExpertsLogPeeper imports #import "ExpertsLogPeeper.dll" int FindLogHandle(int ChartWindowHandle, uchar& Keyword[]); int GetLogRowCount(int LogHandle); int GetLogData(int LogHandle, int RowNo, uchar& Buff[], int BuffSize); #import ``` ``` //+------------------------------------------------------------------+ #include //Expertsログウィンドウを探すためのキーワード extern string Keyword = "If a body catch a body comin' through the rye"; //Log1行取得用バッファは、定義時にあらかじめ長めの文字列で初期化しておく //できるだけ長い方が好ましい #define BUFF_SIZE 256 //string Buff = "----+----1----+---2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2----+----3----+----4----+----5----+-"; static uchar Buff[BUFF_SIZE + 1]; int LogHandle = 0; //+------------------------------------------------------------------+ int init() { //探索用にキーワードを出力 Print(Keyword); return(0); } //+------------------------------------------------------------------+ int start(){ if(LogHandle == 0){ uchar array[BUFF_SIZE+1]; int len = StringToCharArray(Keyword,array,0,StringLen(Keyword)); array[len] = 0; LogHandle = FindLogHandle(WindowHandle(Symbol(), Period()), array); if(LogHandle <= 0){ Print("Expertsログウィンドウを捕捉できません。"); Print(Keyword); return(0); }else{ Print("Experts Log Window Handle:", LogHandle); } } //ログの行数を取得する int rowCount = GetLogRowCount(LogHandle); if(rowCount <= 0){ Print("GetLogRowCount() return ", rowCount); return(0); } string comm = ""; for(int i = 1 ; i <= rowCount; i++){ //1行ずつ取得する int bytes = GetLogData(LogHandle, i, Buff, BUFF_SIZE); if(bytes < 0){ Print("GetLogData() return ", bytes); break; } // // //何か解析とかの処理 // // string str; str = CharArrayToString(Buff, 0, bytes); comm = comm + str + "\n"; } //コメントに表示してみる Comment(comm); return(0); } ```