Прошу помоши с SendMessageA

 

Добрый день.

Мне необходимо получить название текущего символа в окне обзор рынка.

Делаю так

int a=0;
int a1;

int hparent=0;

hparent=WindowHandle(Symbol(),Period()); // нашли хэндл графика скрипта
hparent=GetAncestor(hparent,2); // нашли основное окно


  int Handle=GetDlgItem(GetDlgItem(GetDlgItem(hparent,0xE81C),0x50),0x8A71); //Нашли Handle обзор рынка


  a=SendMessageA(Handle,LVM_GETITEMTEXT,0,a1);  //******************Посылаем сообщение получить текст

 //MessageBoxA(0,res,"Сообщение",MB_OK|MB_SYSTEMMODAL);

как я понимаю 4 параметр SendMessageA должен быть структурой а как ее передать из mt4?

Или может как нибудь по другому надо делать?.

Заранее спасибо)


 

 

нет, там не структура а int


int SendMessageA(int hWnd,int Msg,int wParam,int lParam);


вы лучше напишите зачем вам это нужно. так как есть ещё и GetWindowTextA

 

Мне нужно одним скриптом переоткрывать несколько графиков сейчас их 16.

То есть скрипт закрывает все окна кроме себя, потом из массива заранее забитых названий инструментов

открывает те окна которые есть в окне обзор рынка а которых нет по ним выдает сообшение что инстурмента нет

в окне обзор рынка. И потом закрывает свое окно.


GetWindowTextA насколько я понимаю с listView не работает?


(если ни кто не сможет помочь тогда буду делать самый последний вариант открывать график и по заголовку определять инструмент потом закрывать).

Или у вас есть пример?

 

Есть такой волшебный файл "symbols.sel" там все инструменты из окна "Обзора рынка".

Главное его волшебное свойство, он меняется сразу после любых изменений в окне "Обзора рынка".

Ильнур написал разнообразные функции для работы с файлами МТ4. В т.ч. и с  "symbols.sel".

 

Спасибо. Всем за ответы.

Я видимо не правильно написал пост.

Простой вопрос ко всем

может кто нибудь привести пример как получить в mt4 скрипте без файлов самописных длл и т.д

а только спомошью любой/любых Api функций название текущего инструмента в окне обзор рынка?.

 

string Symbol( ) 
Возвращает текстовую строку с именем текущего финансового инструмента.
Или Вам нужно обязательно получить из окна обзор рынка?

Или обязательно с помощью API?

 
grofast >>:

Спасибо. Всем за ответы.

Я видимо не правильно написал пост.

Простой вопрос ко всем

может кто нибудь привести пример как получить в mt4 скрипте без файлов самописных длл и т.д

а только спомошью любой/любых Api функций название текущего инструмента в окне обзор рынка?.

Чужие посты необходимо читать внимательно! А ещё поиск есть...

https://www.mql5.com/ru/code/9102

 
Zhunko >>:

Чужие посты необходимо читать внимательно! А ещё поиск есть...

https://www.mql5.com/ru/code/9102


Zhunko друг я внимательно прочитал твой пост спасибо тебе.

Но если завтра или через месяц поменяется структура этого файла мне будет не когда искать новую структуру.

Или ждать когда напишут новую функцию.


zhuki 

Хотелось бы только из окна и только при помощи api.

Если из окна обзор рынка и при помощи api  я был бы очень благодарен.

 
grofast >>:


Zhunko друг я внимательно прочитал твой пост спасибо тебе.

Но если завтра или через месяц поменяется структура этого файла мне будет не когда искать новую структуру.

Или ждать когда напишут новую функцию.

Метаквоты даже явные ошибки в МТ4 не исправляют. А тут ради Вас начнут портить файлы... Делать им нечего... Они МТ5 сейчас занимаются.

Почему Вы не боитесь, что окно "Обзор рынка" не изменитья завтра?
 

Потому что там в любом случае будет listView и при изменении названия мне будет достаточно изменить обработку api функции

а не искать структуру файла и не писать прикреплять dll.

 

zhuki 

Хотелось бы только из окна и только при помощи api.

Если из окна обзор рынка и при помощи api  я был бы очень благодарен.


Не думаю,что Вам при помощи MQL уласться разобрать это окно. Как вы обратитесь к этому окну,да еще компонент надо вытащить и разобрать. В MQL таких средств нет, а с помощью более сильного языка это сделать можно. Да и DLL в 10-15 строк это такая ерунда,что и переписать можно. Мне кажется Вы себе задачу усложняете.

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