Я пытаюсь установить текст в элементе управления Edit другого приложения из приложения C ++ MFC.
Мой код работает нормально, если другое приложение - «Блокнот», но не работает в приложении, над которым мне нужно работать.Когда я не мог заставить работать WM_SETTEXT, я подумал, что, возможно, приложение фильтрует сообщения в элемент управления, и, поскольку ввод с клавиатуры работает, я попытался отправить сообщения с клавиатуры.Это тоже не сработало.Я проверил, что окно получает ввод с клавиатуры, регистрируя сообщения в Spy ++.Что я делаю неправильно или отсутствует?
if (g_IPAdressHwnd != 0) // g_IPAdressHwnd is the handle to the Edit control
{
CWnd *wnd = CWnd::FromHandle(g_IPAdressHwnd);
wchar_t buff[256];
wchar_t windowText[256];
wchar_t className[256];
BOOL b = IsWindowUnicode(wnd->GetSafeHwnd()); // returns true
GetClassName(wnd->GetSafeHwnd(), className, 200); // returns "WindowsForms10.EDIT.app.0.378734a"
wnd->GetWindowText(windowText, 256); // does not work
wnd->SendMessage(WM_GETTEXT, 256, (LPARAM)buff); // this works
wcscpy_s(buff, L"Foo!");
wnd->SendMessage(WM_SETTEXT, 256, (LPARAM)buff); // does not work
wnd->SendMessage(WM_CHAR, L'A', 0); // does not work
}