
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вам нужны еще два кода:
LVM_GETNEXTITEM = 0x100C
и
LVM_GETITEMTEXT = 0x102D
LVNI_SELECTED = 0x0002
index=SendMessageA(hwnd, LVM_GETNEXTITEM, (WPARAM)-1, (LPARAM)2); //Возвращает индекс первой выделенной строки
lvi.iSubItem = 1; // Номер столбца
SendMessageA(hwnd, LVM_GETITEMTEXT, (WPARAM)index, (LPARAM)&lvi); // lvi.pszText содержит строку текста из ячейки. Дальше переводим в int.
очень даже можно обойтись - в MQL достаточно средств для этого ;)
Поправьте меня, если не так, но для user.dll галочку ж надо в терминале ставить, чтобы разрешить ей работать? Тогда чем она не внешняя? Ок, понятно, что имелись в виду самописные dll (не из поставки операционки).
А каким образом описать структуру для вызова SendMessageA(hwnd, LVM_GETITEMTEXT, (WPARAM)index, (LPARAM)&lvi) из MQL4? Или задача под МТ5? Я пытался таким способом вытащить текст (правда из другого окна) как раз используя DLL. Получил мусор, разбираться было некогда. Если лист имеет стиль ownerdraw, то может и не содержать текста в самих элементах.
Поправьте меня, если не так, но для user.dll галочку ж надо в терминале ставить, чтобы разрешить ей работать? Тогда чем она не внешняя? Ок, понятно, что имелись в виду самописные dll (не из поставки операционки).
А каким образом описать структуру для вызова SendMessageA(hwnd, LVM_GETITEMTEXT, (WPARAM)index, (LPARAM)&lvi) из MQL4? Или задача под МТ5? Я пытался таким способом вытащить текст (правда из другого окна) как раз используя DLL. Получил мусор, разбираться было некогда. Если лист имеет стиль ownerdraw, то может и не содержать текста в самих элементах.
да имелось ввиду именно отсутствие самописных длл. про ownerdraw сказать пока ничего не могу, кроме одног: текст то этот гдето всетаки есть - значит както до него можно добраться ;)
Задача для четверки. Вот все что мне удалось собрать - но оно еще не работает. нет еще связки с текстовой строкой куда нужно вернуть результат и возвращает всегда число прочитанных символов - ноль :(
для api: cишных текстов я уже видел немало, возможно они были даже рабочими. вся беда в том, что некоторые вещи в MQL не "транслируются" один-в-один:(
ну например: как положить адрес строки для возврата прочитанного значения в lvi[5] (то самое pszText) ?
как положить адрес строки для возврата прочитанного значения в lvi[5] (то самое pszText) ?
:) Очень просто....
#import "kernel32.dll"
int lstrcat(string dst, string src);
#import
string strHolder = "13245678901234567890123456789012345678901234567890123456789012324";
lvi[5] = lstrcat(strHolder,"");
Эхх, доканывать - так по полной. Тем более и тема подходящая (ForexTools, извини меня).
В МТ4 для генерации искусственного тика надо было вызвать PostMessageA( h, WM_COMMAND, 33324, 0 ) из user32.dll.
А вот в МТ5 как? Впечатление такое, что эта цифирь поменялась. Может, знает кто?
про ownerdraw сказать пока ничего не могу, кроме одног: текст то этот гдето всетаки есть - значит както до него можно добраться ;)
ну например: как положить адрес строки для возврата прочитанного значения в lvi[5] (то самое pszText) ?
Эхх, доканывать - так по полной. Тем более и тема подходящая (ForexTools, извини меня).
В МТ4 для генерации искусственного тика надо было вызвать PostMessageA( h, WM_COMMAND, 33324, 0 ) из user32.dll.
А вот в МТ5 как? Впечатление такое, что эта цифирь поменялась. Может, знает кто?
Зачем жеж извинятся? лучше просто новую тему создать, да на форуме пятерочном с правильным названием - тогда быстрее помогут ;)
а по сути - есть такая прожка от мирсософта SPY++ (и на форуме была и в инете найти ссылку не проблемма). умеет в том числе перехватывать сообщения посылаемые окну. вот скрин когда в окно идут только тики
сорри - дальше не копал. мне бы сейчас со своей задачкой разобраться :(
Знатоки Win32API.... аууууу.... ну не уж то задачка вам не по зубам?!!
Ведь не из праздного любопытства был задан вопрос. Вещь реально нужная для написания скриптов работы с ордерами в ручном режиме. Например - простая подтяжка стопа. Код - тривиальный, но спрашивать в параметрах скрипта номер тикета которому нужно стоп промодифицировать :(
А так, можно вообще без параметров скрипт сделать: выбранному в списке ордеров устанавливается стоп в точке сброса скрипта.
Может хоть на выходных у кого то найдется время добить мой последний вариант (неработающего еще) кода?
...
Может хоть на выходных у кого то найдется время добить мой последний вариант (неработающего еще) кода?
А с моими подсказками не получилось?
А с моими подсказками не получилось?
увы :((( мои познания в системном программировании закончились на том коде который я выложил. может добьете(сь результата)?