Re[2]: Как вставить текст в Edit в другой программе?
От: Zipper555  
Дата: 05.11.02 16:23
Оценка:
Здравствуйте old Dutchman, Вы писали:

OD>Здравствуйте Zipper555, Вы писали:


OD>Значитца так — находишь стандартными путями форму, на которой лежит эдит — по простому можно FindWindow.

OD>Шпаем посмотри Control ID.
OD>Потом —

OD>
OD>HWND hWndForm = FindWindow(szClassNameFromSpy,szWindowNameFromSpy);
OD>if(hWndForm == NULL)
OD>   return FALSE;

OD>HWND hWndEdit = GetDlgItem(hWndForm,dwCtlIDFromSPY);
OD>


OD>или


OD>
OD>HWND hWndEdit = SetDlgItemText(hWndForm,dwCtlID,_T("Some text"));
OD>


OD>FindWindow не даст тебе эдита.

OD>Вместо FindWindow можно юзать EnumWindows и тд

OD>


OD>

Z>>Задача такая: есть у меня программа. Она открывает диалог другой программы. На этом диалоге находятся несколько Edit'ов (в Spy++ посмотрел), и у всех одинаковые Caption'ы (тоже в Spy++ посмотрел). Мне надо с помощью моей программы вставить текст в один из Edit'ов. Я так думаю, вставлять надо с помощью EM_REPLACESEL, но для этого мне нужен дескриптор этого Edit'a. Поэтому вопрос: как мне вставить текст в Edit или хотя бы как определить его хэндл?

Z>>P.S. Нужный мне Edit стоит самым первым в диалоге, хотя это, наверно, значения не имеет.


Спасибо, только что-то не работает:

HWND hwnd = FindWindow (NULL, "Default - FlashGet");
PostMessage (hwnd, WM_KEYDOWN, VK_F4, NULL);
hwnd = FindWindow (NULL, "Добавить новую закачку");
HWND hWndEdit = GetDlgItem(hwnd, 0x000003E9);
SendMessage (hWndEdit, EM_REPLACESEL, TRUE, (LPARAM)"Text");
PostMessage (hwnd, WM_KEYDOWN, VK_RETURN, NULL);


hWndEdit почему-то получает NULL.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.