Форум: "WinAPI";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];
ВнизEM_CHARFROMPOS Найти похожие ветки
← →
Kerk © (2005-06-21 12:12) [0]Вот такой код валит WordPad:
FirstPos := SendMessage(Hwnd,EM_CHARFROMPOS,0,Integer(@Pt));
Копчиком чувствую, что проблема в передаваемом указателе.
Неужели нет способа узнать номер символа под курсором RichEdit другого процесса?
Когда внедрял DLLку хуком, тот же код работал.
Google молчит. Яндекс дает ссылки на всякую хрень.
← →
kaZaNoVa © (2005-06-21 13:22) [1]может попробовать внедрять не длл а код?
← →
Kerk © (2005-06-21 13:23) [2]тьфу на тебя, извращенец! :))
← →
kaZaNoVa © (2005-06-21 13:26) [3]Kerk © (21.06.05 13:23) [2]
попробуй заюзать что-нить типа разпознавания символов с экрана ..
← →
Игорь Шевченко © (2005-06-21 13:44) [4]kaZaNoVa © (21.06.05 13:26) [3]
> попробуй заюзать что-нить типа разпознавания символов с
> экрана ..
"Микроэлемента ванадия больше всего в поганках, что вовсе не означает, будто их
надо есть."
(с) ХиЖ 8-1976
← →
Digitman © (2005-06-21 14:10) [5]
> Вот такой код валит WordPad:
>
> FirstPos := SendMessage(Hwnd,EM_CHARFROMPOS,0,Integer
именно такой код именно мой Ворд именно не "валит"
эни квешшнз ?
← →
Kerk © (2005-06-21 14:15) [6]Digitman © (21.06.05 14:10) [5]
WordPad !!!! а не Word
← →
Kerk © (2005-06-21 14:16) [7]При посылке сообщения окну RICHEDIT приложение падает.
← →
Игорь Шевченко © (2005-06-21 14:28) [8]
> Копчиком чувствую, что проблема в передаваемом указателе.
Верно чувствуешь. Сам подумай, если указатель ссылается на адресное пространство чужого процесса, что при этом получится ?
← →
Digitman © (2005-06-21 14:31) [9]и WordPad не валит.
конкретно - v5.0 , билд 2195, Винтукей SP4
pt я объявил локально в процедуре и никак не инициализирую
var
FirstPos: integer;
pt: integer;
begin
hwnd := findwindow(nil, "Document - WordPad"); //окно гарантированно найдено
FirstPos := SendMessage(Hwnd,EM_CHARFROMPOS,0,Integer(@Pt));
ы ?
← →
Kerk © (2005-06-21 14:37) [10]Игорь Шевченко © (21.06.05 14:28) [8]
Сам подумай, если указатель ссылается на адресное пространство чужого процесса, что при этом получится ?
Понимаю все это. Но все же WM_GETTEXT как-то работает.
Обидно.. EM_CHARFROMPOS для EDIT прокатывает (там без указателя), а для RICHEDIT - нет :(
Digitman © (21.06.05 14:31) [9]
ты не туда сообщение шлешь.
его надо слать самому RICHEDIT, а в твоем случае оно не обрабатывается вообще похоже
← →
BiN © (2005-06-21 14:46) [11]Kerk © (21.06.05 14:37) [10]
Понимаю все это. Но все же WM_GETTEXT как-то работает.
Обидно.. EM_CHARFROMPOS для EDIT прокатывает (там без указателя), а для RICHEDIT - нет :(
VirtualAllocEx, WriteProcessMemory и иже с ними не пробовал?
← →
Kerk © (2005-06-21 14:48) [12]BiN © (21.06.05 14:46) [11]
VirtualAllocEx, WriteProcessMemory и иже с ними не пробовал?
О! Кстати мысль. Что-то я про них забыл.
← →
Digitman © (2005-06-21 14:55) [13]
> Kerk © (21.06.05 14:37) [10]
ну повалил я его ... и что ? ... вполне ожидаемый результат .. АП - чужое, и мой указатель там - как корове седло ..
← →
Игорь Шевченко © (2005-06-21 14:55) [14]Kerk © (21.06.05 14:37) [10]
> Понимаю все это. Но все же WM_GETTEXT как-то работает
WM_GETTEXT известен Windows, поэтому при обработке его и ряда других известных сообщений, Windows создает область разделяемой памяти, доступной всем приложениям, приложение, которое обрабатывает сообщение, копирует данные туда, а Windows уже скопированные данные перемещает в адресное пространство отправителя, и потом уничтожает область общей памяти.
← →
Kerk © (2005-06-21 14:57) [15]ОК. Все понятно.
Теперь надо выбрать между внедрением DLL хуком и вариантом предложенным в [11].
Как прямее? :)
← →
kaZaNoVa © (2005-06-21 15:00) [16]Kerk © (21.06.05 14:57) [15]
имхо вариант с длл
← →
Eraser © (2005-06-21 15:01) [17]Удалено модератором
Примечание: Offtopic
← →
Digitman © (2005-06-21 15:02) [18]
> Как прямее?
"прямее" будет "прямой" вариант
а "прямой" вариант - это целевое внедрение кода, т.е. внедрение в АП конкретного (а не всех подряд) процесса
глоб.хук же внедряет код в АП сразу множества процессов, вне зависимости от того, надо оно тебе или не надо
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.013 c