![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с МЕМО чужого окна и имитация клика или popup [D5, D7, Win95/98]
snikers © (2006-05-26 16:11:00)Привет мастера. Подскажите как можно в чужой программе найти мемо и считать с него все строки. Ответы "через handle " пожалуйста поясните... :-)
+ можно ли как-то зная компонент в чужом приложении сделать так, чтоб при двойном нажатии мыши на негоDO SOMETHING.
Или может как-нибудь создать popup меню в чужой проге. Если есть хоть какие решения, поделитесь, пожалуйста.
n0name (2006-05-27 18:36:00) [1]Можешь по ID.
GetDlgItemID, если ему присвевается ID при создании(ему - дочернему окну).
snikers (2006-05-27 18:33:00) [2]а как ПРАВИЛЬНО организовать поиск мемо?
Тоесть искать все окна активного или неактивного приложения и как только найдено Tmemo и форма называется "Main" тогда [13]
begin...end (2006-05-27 16:14:00) [3]> snikers © (27.05.06 16:08) [12]
Можно, конечно.
SendMessage(OtherMemo, WM_SETTEXT, 0, Integer(PChar(MyMemo.Text)))
snikers (2006-05-27 16:08:00) [4]
> [11]
класно. а что требуется. разве нельзя както послать собщение другому мемо, чтоб оно текст взяло с моего. ???
begin...end (2006-05-27 15:20:00) [5]Я извиняюсь, но для замены текста в чужом memo внедрения не требуется.
snikers (2006-05-27 14:18:00) [6]читал я статью... вобщем понял, что я это "внедрение" никогда не сделаю.
многому еще нужно учиться. может и нагло звучит, но может кто-нить сможет как-то попроще пояснить(а лучше написать:-))) функцию которая бы могла заменить текст в чужом мемо типа
function WriteText(MyMemo:Tmemo; OtherMemo:HWND):boolean;
жалко если нет способа попроще это сделать.
GrayFace (2006-05-27 12:54:00) [7]n0name (27.05.06 11:18) [8]
> Выделяешь память в чужом процессе(VirtualAllocEx) и записываешь
> туда свою WndProc(WruiteProcessMemory).
Нет, это не для слабонервных.
http://www.soft32.ru/literature.shtml?topic=visual&book=1&page=head22.htm
Полный текст книги - http://mmp.flat-design.ru/rihter.zip
snikers © (27.05.06 10:44) [7]
> Ноя так и не понял, можно ли, зная handle мемо, записать
> в него весь текст(например из другого мемо, которое находится
> в моей проге). я в Api слабоват, пользуюсь просто DRKB и
> то мало чего понимаю, так что извиняйте за непонимание.
Да. Это можно сделать после внедрения.
n0name (2006-05-27 11:18:00) [8]
> "сабклассинг"
MSDN, subclassing
> "в контексте целевого процесса"
Выделяешь память в чужом процессе(VirtualAllocEx) и записываешь туда свою WndProc(WruiteProcessMemory).
snikers (2006-05-27 10:44:00) [9][2]
> Сабклассинг, твой обработчик в контексте целевого процесса.
"сабклассинг", "в контексте целевого процесса" - если можно поподробнее, а то для меня это загадка..(пока что надеюсь):-)
> GrayFace © (27.05.06 06:27) [3]
если будет время - хоть немного кода на 2-й пункт
Ноя так и не понял, можно ли, зная handle мемо, записать в него весьтекст(например из другого мемо, которое находится в моей проге). я в Api слабоват, пользуюсь просто DRKB и то мало чего понимаю, так что извиняйте за непонимание.
GrayFace (2006-05-27 07:21:00) [10]Popup создавать как всегда, далать то должна внедряемая dll.
GrayFace (2006-05-27 06:59:00) [11]Нет, я о том, что вначале надо получить Handle родителя, чтобы добраться до Memo.
begin...end (2006-05-27 06:35:00) [12]> GrayFace © (27.05.06 06:27) [3]
> Handle родитель Memo получить с помощью FindWindow
А может, GetParent?
GrayFace (2006-05-27 06:27:00) [13]1) Handle родитель Memo получить с помощью FindWindow, само мемо - FindWndowEx или GetDlgItem или EnumChildWindows. Все нужное для этого получается из Spy++ (в комплекте с Visual Studio) или того чо с Delphi идет - не помню название. Если ID Memo не мняется от запуска к запуску, то можно GetDlgItem.
2) Слово для поиска - внедрение. Затем подменять оконную процедуру - SetWindowLong - и реагировать на WM_LBUTTONDBLCLK.
n0name (2006-05-27 05:47:00) [14]Я писал вчера, но что то не отправилось :\
> Привет мастера. Подскажите как можно в чужой программе найти
> мемо и считать с него все строки.
Если мемо одно то FindWindow по классу и WM_GETTEXT.
> можно ли как-то зная компонент в чужом приложении сделать
> так, чтоб при двойном нажатии мыши на него DO SOMETHING.
>
Сабклассинг, твой обработчик в контексте целевого процесса.
snikers (2006-05-27 02:27:00) [15]неужели никто не может помочь хоть по одному вопросу?