Сканирование серверов

 

Бывает ситуация при быстрых движениях цены, когда при попытке открыть ордер сервер не принимает его, сообщая что нет связи. И при повторных попытках реакция сервера остаётся неизменной. Но стоило переключиться на другой сервер, как ордер открылся легко и с первого раза.

Можно ли из эксперта пересканировать сервера?

 

А что значит "пересканировать" в данном случае? Зачем вам его сканировать? Может имеется ввиду переключиться на другой сервер?

 
khorosh:

Бывает ситуация при быстрых движениях цены, когда при попытке открыть ордер сервер не принимает его, сообщая что нет связи. И при повторных попытках реакция сервера остаётся неизменной. Но стоило переключиться на другой сервер, как ордер открылся легко и с первого раза.

Можно ли из эксперта пересканировать сервера?

#define RESCANSERVERS_COMMAND_CODE   37400
#define OPENLOGINWINDOW_COMMAND_CODE 35429
#define PAUSE 1000

int ReScanServers()
{
int hwindow=GetAncestor(WindowHandle(Symbol(),Period()),2);   // Get Main MT Handle
   if(hwindow!=0) 
   {                                                          // If Exist
      return(PostMessageA(hwindow,WM_COMMAND,RESCANSERVERS_COMMAND_CODE,0)); // Send ReScan Servers Command
   }
   return(-1);
}

int ReLoginAccount()
{
int hwnd=GetAncestor(WindowHandle(Symbol(),Period()),2);           // Get Main MT Handle
    PostMessageA(hwnd,WM_COMMAND,OPENLOGINWINDOW_COMMAND_CODE,0);  // Open Login Window
    Sleep(PAUSE);
    hwnd=GetLastActivePopup(hwnd);                                 // Finde Login Window Handle
    hwnd=GetDlgItem(hwnd,0x1);                                     // Finde Login Button window handle
    Sleep(PAUSE);
    SendMessageA(hwnd,BM_CLICK,0,0);                               // Press Login button 
    return(0);
}

В принципе - это уже обсуждалось...... Штатный файл замените прикрепленным....

Удачи ....

Файлы:
winuser32.mqh  110 kb
 
VladislavVG:


В принципе - это уже обсуждалось...... Штатный файл замените прикрепленным....

Удачи ....


Большое спасибою
 
NorthAlec:

А что значит "пересканировать" в данном случае? Зачем вам его сканировать? Может имеется ввиду переключиться на другой сервер?

Щёлкните по значку в правом нижнем углу индицирующего наличие связи и там увидите пункт - "Пересканировать серверы" . Так вот именно это мне и хотелось сделать автоматически.

 
VladislavVG:
 Штатный файл замените прикрепленным.... 

Файл-то в ходу... :-)))

Вот новая версия. Самая последняя. 

Файлы:
winuser32_1.mqh  59 kb
 
khorosh:

Щёлкните по значку в правом нижнем углу индицирующего наличие связи и там увидите пункт - "Пересканировать серверы" . Так вот именно это мне и хотелось сделать автоматически.

Здесь библиотека сервисных функций для МТ4. Работают после первого вызова несоизмеримо быстрее, чем вызов WinAPI функций в MQL4.

По ощущениям раз в 10 быстрее.

 
Zhunko:

Здесь библиотека сервисных функций для МТ4. Работают после первого вызова не соизмеримо быстрее, чем вызов WinAPI функций в MQL4.

По ощущениям раз в 10 быстрее.

Спасибо.
 
Zhunko:

Здесь библиотека сервисных функций для МТ4. Работают после первого вызова не соизмеримо быстрее, чем вызов WinAPI функций в MQL4.

По ощущениям раз в 10 быстрее.

Большое спасибо за Ваш бескорыстный и высококвалифицированный труд. А с чем связано, уменьшение объёма файла WinUser32_1.mqh по сравнению с выложенным VladislavVG:
 
VladislavVG:


В принципе - это уже обсуждалось...... Штатный файл замените прикрепленным....

Удачи ....

А после пересканирования обязательно ли производить перелогинивание?
 
khorosh:
А после пересканирования обязательно ли производить перелогинивание?

Я не делаю - вроде нормально работает ....
Причина обращения: