Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.14;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2005.08.14;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.028 c
8-1112937940
PhotoManiac
2005-04-08 09:25
2005.08.14
Фотки с камеры по таймеру...


1-1122361847
Kolan
2005-07-26 11:10
2005.08.14
Как назначить всем формам одну иконку (16x16).


14-1121774126
SergP.
2005-07-19 15:55
2005.08.14
Помогите с PHP


3-1120466256
stud
2005-07-04 12:37
2005.08.14
использование ibscript


4-1119341979
SamProf
2005-06-21 12:19
2005.08.14
Помогите юзать чужие окна.....