Здравствуйте, BlackHeretic, Вы писали:
BH>Здравствуйте, kliff, Вы писали:
K>>Здравствуйте, BlackHeretic, Вы писали:
BH>>>Здравствуйте, kliff, Вы писали:
K>>>>Здравствуйте, skaa, Вы писали:
S>>>>>Здравствуйте все!
S>>>>>Я должен читать текст из редактора в child MDI другой программы. Я использую следующий оператор:
S>>>>>SendMessage(hWnd,WM_GETTEXT,1000,sText);
S>>>>>. Я получаю текст, но не от всех окон. Почему не все окна позволяют мне читать текст из них? Возможно кто-то уже имел эту проблему и может помочь мне...
S>>>>>Спасибо.
K>>>>Тебе нужно это делать из того процесса в котором находиться интересующее тебя окно. Почему винда маршалит WM_GETTEXT не всегда точно не знаю, скорее всего sequrity reason. Буду благодарен, если кто-то скажет более точно.
BH>>>Если не ошибаюсь — винда ничего плохого не делает. Все дело в самом контроле. К примеру класс EDIT смотрит, что если у него стиль пассвёрд и сообщение пришло из другого процесса — он вернет пустую строку. Ну и соответственно это не единственный случай.
K>>Извнияюсь, прогнал
Перепутал WM_GETTEXT и WM_SETTEXT — в моем случае читать получалось всегда, а вот писать нет. Читаю напрямую сообщениями, GetWindowText() не пробовал.
BH>И не пробуй
Где то я слышал что GetWindowText() внутри просто посылает сообщения.
BH>А насчет WM_SETTEXT верно тоже самое — если прога не хочет что бы ей меняли кэпшн — она просто не пропустит сообщение в DefWindowProc...
Спасибо всем!