API , читаем тип Edit из другого приложения ( проблема ) - страница 4

 
Какое поле нужно?
 
Zhunko:
Какое поле нужно?
Любое поле EDIT, любого чужого приложения. Можно просто тупо зная дескриптор. Главное чтоб текст из поля вытащить, а дескриптор думаю я сумею найти.
 

нужно сделать чтоб вот это работало, это все больше ничего не надо.

// аналог на MQL4

#define WM_GETTEXT                     0x000D
#import "user32.dll"
 int SendMessageA (   int h, int cmd , int len  , string p );
#import

void start() 
{
  string p1 = "        ";

  SendMessageA ( 0x050A90, WM_GETTEXT, 8 ,  p1 );

  Print( p1 );


}
 
kosuhin:
Любое поле EDIT, любого чужого приложения. Можно просто тупо зная дескриптор
НИЗЯ чужого!
Впрочем, я не настаиваю и спорить не буду.
 
jartmailru:
НИЗЯ чужого!
Впрочем, я не настаиваю и спорить не буду.

Если вы почитает посты выше то поймете, что с помощью SendMessageA это можно сделать и вот пример работающего кода на C++, подчеркну, именно работающего кода.

YuraZ получил как я понял это поле, но пока его что то невидно.

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
    wchar_t a[] = L"                          ";
    SendMessage((HWND)0x00040E86, WM_GETTEXT, sizeof(a), (LPARAM)a);
    return 0;
}

Что мешает реализовать это в MQL4 не пойму, надо только правильно передать и получить данные, вот это у меня не получается.

Тем более я написал, что получаю первую букву с помощью SendMessageW, но что то неправильно делаю, думаю неправильно передаю и получаю данные в функцию.

 
kosuhin:

Тем более я написал, что получаю первую букву с помощью SendMessageW, но что то неправильно делаю, думаю неправильно передаю и получаю данные в функцию.

пробуйте SendMessageA
 
jartmailru:
SendMessageA

Нет именно SendMessageW получает первую букву, SendMessageA молчит, получает пустое поле. Я так понял что там разница только в кодировке, но данные все равно неправильно передаю и получаю видимо.
 

Опа... о как интересно все оказывается...
Ну, с W она должна дать строку типа
буква 0 буква 0 буква 0 буква 0
Т.е. входная строка должна обрабатываться как Unicode.

 
jartmailru:

Опа... о как интересно все оказывается...
Ну, с W она должна дать строку типа
буква 0 буква 0 буква 0 буква 0
Т.е. входная строка должна обрабатываться как Unicode.

Я вот как раз не могу понять как туда и что отправить, чтобы получить оттуда текст. и массив туда отравлял. В итоге он забит первой буквой весь.
 
jartmailru:
НИЗЯ чужого!
Впрочем, я не настаиваю и спорить не буду.

Андрей, всё же, можно, но сложно. Хотя, может и не очень.

Надо память выделять в текущем процессе, писать туда, потом читать оттуда, освобождать память. Ильнур, как-то делал это на MQL4.

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