user32.dll::window handle::получить обработчик поля

 
Здравствуйте,
Пишу советник на 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 в третьем параметре, вопрос как это сделать?

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

 

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

 
Zhunko:

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


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

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

 
smartcoding:


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

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

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

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

 
Zhunko:

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


Странно. А я делал для себя совершенно бесплатно. Вроде уж все уже есть
 
Vinin:

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

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

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

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

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

 
smartcoding:

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

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


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


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

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

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

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

//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);