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