s-ReConnect





//+------------------------------------------------------------------+
//|                                                  s-ReConnect.mq4 |
//|                                          Copyright © 2009, Talex |
//|                                      talex.kaliningrad@gmail.com |
//+------------------------------------------------------------------+
//
// ÂÍÈÌÀÍÈÅ!!!
// Ïåðåïîäêëþ÷àåìûé ñ÷åò äîëæåí áûòü â îêíå "Èçáðàííîå", ñàìûì âåðõíèì
#property copyright "Copyright © 2009, Talex"
#property link      "talex.kaliningrad@gmail.com"
#import "user32.dll"
   int GetAncestor (int hWnd, int gaFlags);
   int GetDlgItem (int hDlg, int nIDDlgItem);
   int GetLastActivePopup (int hWndOwner);
   int PostMessageA (int hWnd, int Msg, int wParam, int lParam);
#import
#define WM_COMMAND         0x0111
#define WM_KEYDOWN         0x0100
#define VK_HOME            0x24
#define VK_ENTER           0x0D

int Pause=15000;                                    // ïàóçà 15 ñåêóíä
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
void start() {
   bool flag=true;
//------------------------------------
   while(!IsStopped()) {
      Comment("ReConnect");
      if(!flag) {
         Print("Ñîåäèíåíèå âîññòàíîâëåíî. Âðåìÿ ÄÖ: ",TimeToStr(TimeCurrent()));
         Comment("ReConnect\nÑîåäèíåíèå âîññòàíîâëåíî.\nÂðåìÿ ÄÖ: ",TimeToStr(TimeCurrent()));
         flag=true;
      }
      while(!IsConnected()&&!IsStopped()) {         // åñëè ñîåäèíåíèÿ íåò
         if(flag) {
            Print("Íåò ñîåäèíåíèÿ ñ ñåðâåðîì. Âðåìÿ ÄÖ: ",TimeToStr(TimeCurrent()));
            Comment("ReConnect\nÍåò ñîåäèíåíèÿ ñ ñåðâåðîì.\nÂðåìÿ ÄÖ: ",TimeToStr(TimeCurrent()));
            flag=false;
         }
         Rescan();                                  // ïåðåñêàíèðóåì ñåðâåðû
         Sleep(Pause);                              // ïîäîæäåì êîííåêòà
         if(!IsConnected()) {                       // åñëè ñîåäèíåíèÿ íåò
            Reconnect();                            // ïåðåïîäêëþ÷àåì ñ÷åò
            Sleep(Pause);                           // ïîäîæäåì êîííåêòà
         }
      }
      Sleep(60000);
   }
   Comment("");
   return;
}
//+------------------------------------------------------------------+
//-----------------------------------------------------------------------+
// Ôóíêöèÿ ïîçâîëÿåò ïåðåñêàíèðîâàòü ñåðâåðû                             +
//-----------------------------------------------------------------------+
void Rescan() {
   int hwindow=GetAncestor(WindowHandle(Symbol(),Period()),2);// ïîëó÷àåì õåíäë ãëàâíîãî îêíà
//-----------------------------------
   Comment("ReConnect\n...ïåðåñêàíèðóåì ñåðâåðû");
	if(hwindow!=0) {                                 // íàøëè ãëàâíîå îêíî
	   PostMessageA(hwindow,WM_COMMAND,37400,0);     // ïîñûëàåì ñîîáùåíèå "ïåðåñêàíèðîâàòü ñåðâåðû" 
	}
	else Print("Rescan Error:",GetLastError());
	return;
}
//-----------------------------------------------------------------------+
//-----------------------------------------------------------------------+
// Ôóíêöèÿ ïîçâîëÿåò ïåðåïîäêëþ÷èòüñÿ ê ñ÷åòó                            +
//-----------------------------------------------------------------------+
void Reconnect() {
   int hwindow=WindowHandle(Symbol(),Period()),     // ïîëó÷àåì õåíäë îêíà ãðàôèêà
       hterminal=GetAncestor(hwindow,2);            // ïîëó÷àåì õåíäë ãëàâíîãî îêíà
//---------------------------- 
   Comment("ReConnect\n...ïåðåïîäêëþ÷àåì àêêàóíò");
   if(hterminal!=0) {                               // íàøëè ãëàâíîå îêíî
      hwindow=GetDlgItem(hterminal,0xE81C);
      hwindow=GetDlgItem(hwindow,0x52);
      hwindow=GetDlgItem(hwindow,0x8A70);           // íàøëè Èçáðàííîå îêíà Íàâèãàòîð
      PostMessageA(hwindow,WM_KEYDOWN,VK_HOME,0);   // âåðõíÿÿ ñòðî÷êà çàêëàäêè Èçáðàííîå îêíà Íàâèãàòîð
      PostMessageA(hwindow,WM_KEYDOWN,VK_ENTER,0);  // íàæàëè ëîãèí
      Sleep(1000);                                  // âûæäàëè
      hwindow=GetLastActivePopup(hterminal);        // íàøëè ôîðìó ëîãèíà
      PostMessageA(hwindow,WM_KEYDOWN,VK_ENTER,0);  // çàëîãèíèëèñü
   }
   else Print("Reconnect Error:",GetLastError());
   return;
}
//-----------------------------------------------------------------------+



Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:
user32

Order Management characteristics:

Other Features: