Скачать MetaTrader 5

Как узнать имя действующего эксперта с помощью функций WinApi?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
foxmag
572
foxmag  

Как известно, в MQL4 предусмотрена функция WindowExpertName() для определения имени действующего в активном окне эксперта.

Как определить имя эксперта подобно этой функции средствами WinApi? Например, с помощью SendMessage.

Ведь не секрет, что многие полезные вещи можно делать, используя эту функцию... Спасибо за отклики.

Dmitry Fedoseev
47145
Dmitry Fedoseev  
dokpiknik:

Как известно, в MQL4 предусмотрена функция WindowExpertName() для определения имени действующего в активном окне эксперта.

Вовсе нет, прочитайте внимательней описание функции в справке. Функция возврщает имя эксперта, скрипта, индикатора из которого она вызвана.

Dmitry Fedoseev
47145
Dmitry Fedoseev  
dokpiknik, извините за нескромный вопрос, с чего это вы вдруг в девочку превартились?
foxmag
572
foxmag  
Integer:

Вовсе нет, прочитайте внимательней описание функции в справке. Функция возврщает имя эксперта, скрипта, индикатора из которого она вызвана.


Понятно. Имелось ввиду, что вызов функции WindowExpertName() осуществлялся из самого эксперта.

А как то же самое сделать с помощью функций WinApi?

Dmitry Fedoseev
47145
Dmitry Fedoseev  
dokpiknik:


Понятно. Имелось ввиду, что вызов функции WindowExpertName() осуществлялся из саиого эксперта.

А как то же самое сделать с помощью функций WinApi?


Откуда вызывается эта функция WinApi? Если из самого советника, то можно пользоваться WindowExpertName(), если из DLL вызываемой из советника, то ей можно передать значение WindowExpertName(). Скорее всего какая-то совсем левая программа. Не знаю, можно попробовать в советнике сделать WindowSetText() SetWindowText(), а программе найти активное окно терминала и посмотреть текст окна.

foxmag
572
foxmag  
Integer:
dokpiknik, извините за нескромный вопрос, с чего это вы вдруг в девочку превартились?

Всё просто, я использую готовый ник мужа. А сам он охладел к этим делам.
foxmag
572
foxmag  
Integer:

Откуда вызывается эта функция WinApi? Если из самого советника, то можно пользоваться WindowExpertName(), если из DLL вызываемой из советника, то ей можно передать значение WindowExpertName(). Скорее всего какая-то совсем левая программа. Не знаю, можно попробовать в советнике сделать WindowSetText(), а программе найти активное окно терминала и посмотреть текст окна.

Что это за функция WindowSetText? Что-то мне не удаётся её найти... А вызов должен быть из dll. Ну, так получается. Может быть, есть что-нибудь типа Post/SendMessageA(hwnd,WM_COMMAND,33...,0)?
Dmitry Fedoseev
47145
Dmitry Fedoseev  
dokpiknik:

Что это за функция WindowSetText? Что-то мне не удаётся её найти... А вызов должен быть из dll. Ну, так получается. Может быть, есть что-нибудь типа PostMessageA(hwnd,WM_COMMAND,33...,0)?

Уже исправил - SetWindowText(). Вызов из dll, а dll откуда вызывается?
foxmag
572
foxmag  
Integer:

Уже исправил - SetWindowText(). Вызов из dll, а dll откуда вызывается?

GetWindowText() даёт только заголовок окна, к сожалению, а имя советника находится где-то внутри.

А вызывается dll из самого эксперта, но передавать его оттуда в dll в моей задаче нет смысла, т.к. используется этот фрагмент для тестирования правильности имени.

Dmitry Fedoseev
47145
Dmitry Fedoseev  
dokpiknik:

SetWindowText() даёт только заголовок окна, к сожалению, а имя советника находится где-то внутри.

А вызывается dll из самого эксперта, но передавать его оттуда в dll в моей задаче нет смысла, т.к. используется этот фрагмент для тестирования правильности имени.

 SetWindowText() ничего не дает, она устанавливает. Установить из эксперта, а потом считать функцией GetWindowText(), но тоже нет смысла при поставленой задаче.

foxmag
572
foxmag  

https://www.mql5.com/ru/forum/110207

Здесь есть перечень полезных функций, но, к сожалению нет того, что требуется... Между тем, большое спасибо Вам, Integer, за дискуссию.

Может быть, всё-таки это решаемая задача...? Помогите, пожалуйста...

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий