Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
В сервисе Фриланс выполнено тысячи оплачиваемых заказов. Присоединяйся!
smartcoding
18
smartcoding 2011.05.08 10:56 
Здравствуйте,
Пишу советник на MQL4, который переключается между аккаунтами. Застрял на следующем.

Есть переменная hWnd - обработчик окна входа в терминал, мне необходимо в поле Логин/Пароль ввести текст и имитировать нажатие клавиши ENTER. Вот мой код:

PostMessageA(hWnd, WM_KEYDOWN, "MyUsername", 0); // Type username

PostMessageA(hWnd, WM_KEYDOWN, 0x09, 0);//Press TAB

PostMessageA(hWnd, WM_KEYDOWN, "MyPassword", 0); // Type password

PostMessageA(hWnd, WM_KEYDOWN, 0x0D, 0); // Press ENTER

Работает только нажатие ENTER - а остальное игнорируется, пожалуйста подскажите как исправить.

P.S. видимо мне следует создать обработчики полей Логин/Пароль и прописать их в 1-3 строчках вместо hWnd и заменить WM_KEYDOWN на что-то, что примет STRING в третьем параметре, вопрос как это сделать?

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

Vadim Zhunko
5219
Vadim Zhunko 2011.05.08 11:31  

Библиотека. Только там эта функция заказная. По этому не для всех.

smartcoding
18
smartcoding 2011.05.08 12:13  
Zhunko:

Библиотека. Только там эта функция заказная. По этому не для всех.


А что значит заказная?:)

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

Vadim Zhunko
5219
Vadim Zhunko 2011.05.08 12:16  
smartcoding:


А что значит заказная?:)

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

Платили за неё.

Где-то здесь. Проще в Гугле вопрос задать. Есть примеры.

Victor Nikolaev
Модератор
14035
Victor Nikolaev 2011.05.08 12:18  
Zhunko:

Библиотека. Только там эта функция заказная. По этому не для всех.


Странно. А я делал для себя совершенно бесплатно. Вроде уж все уже есть
Vadim Zhunko
5219
Vadim Zhunko 2011.05.08 12:21  
Vinin:

Странно. А я делал для себя совершенно бесплатно. Вроде уж все уже есть
Попросили - сделал. Значит была нужна именно эта реализация.
smartcoding
18
smartcoding 2011.05.08 14:34  

Нашёл функцию getFocus()

Сегодня рынок закрыт, эксперт не запускается, попробую завтра..

Zhunko:
Попросили - сделал. Значит была нужна именно эта реализация.

буду рад испытать Вашу библотеку с функцией, о которой Вы сказали. Отписал в личку.

Dmitry Fedoseev
41183
Dmitry Fedoseev 2011.05.08 14:35  
smartcoding:

Нашёл функцию GetFocus()

Сегодня рынок закрыт, эксперт не запускается, попробую завтра..


буду рад испытать Вашу библотеку с функцией, о которой Вы сказали.


Вы всем программистам интернета разослали спам по емайл?
smartcoding
18
smartcoding 2011.05.08 14:40  
Integer:

Вы всем программистам интернета разослали спам по емайл?

нескольким людям, email которых нашёл в публичных списках программистов по mql4, отослал email лично, да. Надеюсь, что кто-нибудь поможет решить проблему.
Dmitry Fedoseev
41183
Dmitry Fedoseev 2011.05.08 14:46  
По буквочкам надо пароль и логин вводить. Нажал клаишу (WM_KEYDOWN), отпустил (WM_KEYUP). Третий параметр не текст, а код клавиши должен быть, так же как с Enter.
smartcoding
18
smartcoding 2011.05.08 21:14  

Задача решена:

//Fill Account Number
hlogin=GetDlgItem(GetDlgItem(hWnd,0x49D),0x3E9);
SendMessageA(hlogin,WM_CLEAR,0,0);
SetWindowTextA(hlogin,login);

//Fill Password
hpass=GetDlgItem(hWnd,0x4C4);
SendMessageA(hpass,WM_CLEAR,0,0);
SetWindowTextA(hpass,password);

//Press Login
hbutton=GetDlgItem(hWnd,0x1);
SendMessageA(hbutton,BM_CLICK,0,0);
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий