|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Сен 18, 2003 20:41:05 Если кому интересно... Аналогом функции hmemcpy под NT - ёвыми системами (в том качестве, в котором она применяется под 98-й вместо GetWindowTextA) является функция CallWindowProcA. 2 параметр - дескриптор окна, 3 - сообщение, 5 - адресс буфера, который получет текст окна. В частности, все компоненты Delphi используют именно этот вызов. Т.е. чтобы выловить следующие фрагменты str := Edit1.Text; ... или ... Form1.Caption := str; надо этот бряк и поставить bpx CallWindowProcA if (*(esp+c)==0xD)||(*(esp+c)==0xC) do "d *(esp+14); p ret" Думаю, что компоненты Borland C++ юзают то же самое... |
|
|
Дата: Сен 18, 2003 20:55:24 Предвижу возможный ответ: "Ну, ты и герой... можно подумать - Америку открыл!"... Согласен :). Просто я полазил в поиске, было несколько вопросов по данному поводу (и мой недавно, в том числе) и ни одного толкового ответа! Вот я и решил, скажем так, подитожить... |
|
|
Дата: Сен 18, 2003 20:57:07 Спасибо. А кто наедет - тому я сам по рогам надаю. |
|
|
Дата: Сен 18, 2003 22:25:13 Хм... Так это почти как "invoke WndProc,hEdit,WM_GETTEXT,wP,lP". Единственное различие, вроде: The CallWindowProc function handles Unicode-to-ANSI conversion. |
|
|
Дата: Сен 19, 2003 09:26:53 спасибо. полезная тема. |
|
|
Дата: Сен 19, 2003 11:19:49 Godness Аналогом функции hmemcpy под NT - ёвыми системами (в том качестве, в котором она применяется под 98-й вместо GetWindowTextA) является функция CallWindowProcA hmemcpy вызывается из GetWindowText. А вместо GetWindowText ее напрямую никто не применяет. А в NT hmemcpy вообще нет, там, наверное, применяется какая-нибудь RtlCopyMemory. |
|
|
Дата: Сен 19, 2003 17:38:00 А в NT hmemcpy вообще нет, там, наверное, применяется какая-нибудь RtlCopyMemory. Нет, в НТ вобще не используются внешние функции - копирование памяти просто инлайнится в код для скорости. |
|
|
Дата: Сен 19, 2003 22:10:22 ssx Да ну знаю я, что напрямую она не применяется и что в NT её вообще нету... Я ж чего и говорю - аналог... hmemcpy вызывается из GetWindowText ... Можно подумать, что hmemcpy только с ней и вызывается... Ну, да ладно. Вообщем я хотел сказать, что когда не работает ни GetWindowText, ни GetDlgItemText, ни SendMessage(WM_GETTEXT ...) и вообще ни #уя :), тогда то и работает... |
|
|
Дата: Окт 31, 2003 22:49:59 Не пашут ни бряки на GetWindowText, ни GetDlgItemText, ни SendMessage(WM_GETTEXT ...) и не пашет CallWindowProcA И что делать ?? |
|
|
Дата: Ноя 1, 2003 17:25:44 sl0n У тебя есть прога, которая читает текст с контрола и при этом эти бряки не работают? Это ведь можно делать по разному... ну, получает сообщение WM_CHAR, а там складывает вводимую строку по буквам... или что-то вроде этого... Скинь мне на мыло прогу, попробую посмотрю что там для интереса... |
|
|
Дата: Ноя 1, 2003 19:32:51 мож немного не в тему, а поставить бряку на GetMessage\PeekMessage религия не позволяет? Либо на WindowProc объекта бряку поставить? |
|
|
Дата: Ноя 1, 2003 19:35:11 У тебя есть прога, которая читает текст с контрола и при этом эти бряки не работают? Это ведь можно делать по разному... ну, получает сообщение WM_CHAR, а там складывает вводимую строку по буквам... Да ну... Как щас помню были LMD Tools в мои дельфевые временя - там многие контролы рисовались ручками, а не использовался сабклассинг. И там можно все сделать вообще в обход окошечных сообщений (кое где я так и делаю) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.081 |