サーバを再スキャンするコード。
Basketbull_v8.0_Eng.mq4 というバスケットトレードEAに書かれていたのを抜粋しました。
このEAは start()関数内で while ループし続けるタイプなので、この種のコードが必要なのでしょう..。
#define WM_COMMAND 0x0111 #import "user32.dll" int GetAncestor(int hWnd, int gaFlags); int PostMessageA(int hWnd,int Msg,int wParam,int lParam); #import int start() { if(!IsConnected()) reconn(); return(0); } //+------------------------------------------------------------------+ //| SCAN SERVERS ON DISCONNECTION //+------------------------------------------------------------------+ void reconn() { int hMetaTrader = GetAncestor(WindowHandle(Symbol(),Period()),2); // focus on the terminal window if (hMetaTrader !=0) PostMessageA (hMetaTrader, WM_COMMAND, 37400, 0); // rescan all servers return; }