Список зарегистрированных счетов на платформе

 

Можно ли программно получить список номеров счетов, зарегистрированных на собственной торговой платформе МТ4? Т.е. тех счетов, которые видно в "Навигаторе". На форуме ничего не удалось найти по этому поводу. Спасибо.

 

Да можно.
Прямо из окна навигатора.
WinAPI.
Делал. Работает.
Программно нельзя считать информацию о сервере счетов. Обидно.
Но думаю, что это не особо принципиально.

 
jartmailru:

Да можно.
Прямо из окна навигатора.
WinAPI.
Делал. Работает.
Программно нельзя считать информацию о сервере счетов. Обидно.
Но думаю, что это не особо принципиально.


Здорово! Спасибо. WinApi идёт. А чуть поподробнее можно?
 
dokpiknik:

Здорово! Спасибо. WinApi идёт. А чуть поподробнее можно?

C++.
GetCurrentProcessId.
EnumWindows.
GetWindowThreadProcessId.
EnumChildWindows. 
GetWindowClass.
Дальше работа, например, через WTL::CCtrlTreeView-
EnumWindows и EnumChildWindows работают через callback,
так что без плюсов делать нечего- поэтому можно использовать
объертку дерева.

В принципе всё.

 

Вот последняя функция не WinApi. Как обойтись только WinApi или Delphi? И как выделить handle "Навигатора"? Окон там несколько...

 
dokpiknik:

Вот последняя функция не WinApi. Как обойтись только WinApi или Delphi? И как выделить handle "Навигатора"? Окон там несколько...

Если найти сообщения по работе с Tree (msdn), то можно обойтись без CCtrlTreeView.
Handle навигатора я ищу по GetWindowClass и кол-ву дочерних окон.
Т.е. на бумажку выписать структуру окон- будет ясно.
Можно GetWindowText(). Но перевод на другие языки все портит.
 
jartmailru:
Если найти сообщения по работе с Tree (msdn), то можно обойтись без CCtrlTreeView.
Handle навигатора я ищу по GetWindowClass и кол-ву дочерних окон.

Не хотела бы Вас "нагружать", но всё же рискну попросить: нельзя ли немного кода, пусть даже на С++. Задачка для меня не простая, дай Бог, с кодом разобраться...
 
Не знаю, уместна ли ссылка - но выложу.
 
Запустите WinSpy. Или аналог.
Увидите, какое окно получить сначала, какое потом.
.
Например, сначала надо найти окна, такие, что...
- они напрямую дети главного окна
- их класс = AfxControlBar42
- кол-во дочерних окон должно быть равно 3
.
Смотрите первоисточник.
.
Sorento:
Не знаю, уместна ли ссылка - но выложу.
Уместна.
 
Sorento:
Не знаю, уместна ли ссылка - но выложу.

Большое спасибо за ссылку.
 
jartmailru:
Запустите WinSpy. Или аналог.
Увидите, какое окно получить сначала, какое потом.
.
Например, сначала надо найти окна, такие, что...
- они напрямую дети главного окна
- их класс = AfxControlBar42
- кол-во дочерних окон должно быть равно 3
.
Смотрите первоисточник.
.
Уместна.


Похоже, что выделенное на картинке окно, нужное. Его дескриптор я могу установить. А вот как выделить из этого окна номера счетов, не знаю. Подскажите, пожалуйста.

Причина обращения: