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

Вниз

Послать сообщение из своей программе в чужую   Найти похожие ветки 

 
Tos-ka   (2007-10-13 09:33) [0]

Подскажите как мне из своей программы послать сообщение другой программе на класс компонета TRichViewEdit?
А так же как считать от туда данные?

Нужно имено TRichViewEdit

Особенно интересует как получить от туда данные


 
Leonid Troyanovsky ©   (2007-10-13 10:48) [1]


> Tos-ka   (13.10.07 09:33)

> Подскажите как мне из своей программы послать сообщение
> другой программе на класс компонета TRichViewEdit?

Если TRichViewEdit это контрол класса RICHEDIT,
то сообщения он воспринимает, ожидая, например, адрес буфера
в адресном пространстве своего процесса.

Желаемого можно добиться внедряя dll в чужой процесс и выполняя
посылку сообщений (и, главное, распределяя для них буферы)  из зацепленного потока.

--
Regards, LVT.


 
Tos-ka   (2007-10-13 20:37) [2]

Можно по подробнее?


 
Leonid Troyanovsky ©   (2007-10-14 09:14) [3]


> Tos-ka   (13.10.07 20:37) [2]

> Можно по подробнее?

Что именно непонятно?

--
Regards, LVT.


 
Tos-ka   (2007-10-14 10:19) [4]

Вот код что не верно


h,EditWnd: HWND;
nm : array[0..1023] of char;
begin
h := findwindow(nil, "Form1");
EditWnd := FindWindowEx(h,0,"TRichViewEdit", nil);
if EditWnd = 0 then exit;
SendMessage(EditWnd,WM_GETTEXT,1024,LPARAM(@nm));
Memo1.Lines.Add(nm);


 
Leonid Troyanovsky ©   (2007-10-14 10:33) [5]


> Tos-ka   (14.10.07 10:19) [4]

Лежит ли в основе TRichViewEdit windows class RICHEDIT?
Что вернула SendMessage?

--
Regards, LVT.


 
MetalFan ©   (2007-10-14 11:57) [6]


> Tos-ka   (14.10.07 10:19) [4]

проблема как минимум в том, что ты передаешь указатель на память в СВОЕМ процессе... этот код будет работать только для СВОЕГО приложения.
выход - внедрение DLL в чужой процесс.


 
MetalFan ©   (2007-10-14 12:13) [7]

более простой выход:
VirtualAllocEx/WriteProcessMemory/ReadProcessMemory/VirtualFreeEx
но тут опять же без определенных прав не обойтись...
вот пример для получения/сохранения иконок на раб.столе. там какраз эти функции пользуются
http://delphiworld.narod.ru/base/dt_icons_pos_g_s.html


 
Ins ©   (2007-10-14 12:21) [8]


> Tos-ka   (13.10.07 09:33)

Может этот ваш компонент может обрабатывать WM_COPYDATA или какое-нибудь другое сообщение, работающее по тому же принципу - копирующее данные из адресного пространства одного процесса, в адресное пространство другого?


 
Tos-ka   (2007-10-14 19:19) [9]

Не понятно что возращает, закарючки какието


 
Tos-ka   (2007-10-14 19:22) [10]

[quote]Лежит ли в основе TRichViewEdit windows class RICHEDIT?[/quote]
думаю лежит


 
Tos-ka   (2007-10-21 19:04) [11]

Все еще актуально.

проблема как минимум в том, что ты передаешь указатель на память в СВОЕМ процессе... этот код будет работать только для СВОЕГО приложения.
выход - внедрение DLL в чужой процесс.


как это сделать?


 
Leonid Troyanovsky ©   (2007-10-21 19:22) [12]


> Tos-ka   (21.10.07 19:04) [11]

> Все еще актуально.

Если это RICHEDIT, то WM_GETTEXT он вернет без всякой библиотеки.
Если же не возвращает, то и библиотека не поможет.

--
Regards, LVT.


 
Tos-ka   (2007-10-21 20:55) [13]

Тут есть еще одна фишка. Если создать проект с  RichViewEdit в делфе ниже 7, я могу запросто послать туда сообщение, через SendMessage. А если выше то фиг.

Помогите разобраться с методом через VirtualAllocEx/WriteProcessMemory/ReadProcessMemory/VirtualFreeEx
можно с примером  

Толька этим не тыкайте пожалуйста
http://delphiworld.narod.ru/base/dt_icons_pos_g_s.html


 
Leonid Troyanovsky ©   (2007-10-21 22:27) [14]


> Tos-ka   (21.10.07 20:55) [13]

> Тут есть еще одна фишка. Если создать проект с  RichViewEdit
> в делфе ниже 7, я могу запросто послать туда сообщение,
> через SendMessage. А если выше то фиг.

До сих пор не знаю, что есть RichViewEdit.

> Толька этим не тыкайте пожалуйста

Ну, а чего в том плохого?
Писалось, конечно, во времена NT4, но, думаю, в качестве
примера еще сгодится.

--
Regards, LVT.


 
Tos-ka   (2007-10-22 00:08) [15]

> До сих пор не знаю, что есть RichViewEdit.

http://www.prolaz-team.info/forum/showthread.php?t=300&highlight=RichView

толька здесь зарегится надо

попробуйте разобраться


 
Antoxa2005   (2007-10-22 03:40) [16]

Сокеты? В delphi 7 тоже есть, но они не скомпилиованы...


 
Antoxa2005   (2007-10-22 03:40) [17]

Если конечно 2-я программа, тоже твоя...


 
Leonid Troyanovsky ©   (2007-10-22 11:22) [18]


> Tos-ka   (22.10.07 00:08) [15]

> > До сих пор не знаю, что есть RichViewEdit.

http://www.trichview.com/forums/viewtopic.php?t=1794&highlight=wmgettext

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-10-22 11:30) [19]


> Tos-ka   (22.10.07 00:08) [15]

> попробуйте разобраться

Этот класс не имеет ничего общего с RICHEDIT,
Сергей Ткаченко писал его специально для Delphi/CB.

Про то, что сейчас не поддерживается WM_GETTEXT -
предыдущая ссылка.
А про поддержку EM_GETSELTEXT or EM_STREAMOUT
я ничего не нашел.

Возможно, что единственная возможность -
забирать через буфер обмена, например, эмулируя
нажатие ^C для foreground приложения.

--
Regards, LVT.


 
Tos-ka   (2007-10-22 19:10) [20]

Тоесть метод через VirtualAllocEx/WriteProcessMemory/ReadProcessMemory/VirtualFreeEx, тоже не пойдет???

И все же, может у кого другой пример есть нежели
http://delphiworld.narod.ru/base/dt_icons_pos_g_s.html


 
Tos-ka   (2007-10-22 19:11) [21]

Тоесть метод через VirtualAllocEx/WriteProcessMemory/ReadProcessMemory/VirtualFreeEx, тоже не пойдет???

И все же, может у кого другой пример есть нежели
http://delphiworld.narod.ru/base/dt_icons_pos_g_s.html


 
Leonid Troyanovsky ©   (2007-10-22 21:46) [22]


> Tos-ka   (22.10.07 19:10) [20]

> Тоесть метод через VirtualAllocEx/WriteProcessMemory/ReadProcessMemory/VirtualFreeEx,
>  тоже не пойдет???

Значит, после внимательного изучения ссылки ясности нет?
Ну, а почем б тогда не задать вопрос Сергею Ткаченко,
на какое сообщение его контрол может отдать текст.

> И все же, может у кого другой пример есть нежели

И все же, чем оный не устраивает.

--
Regards, LVT.


 
MetalFan ©   (2007-10-22 23:51) [23]


> И все же, чем оный не устраивает.
>

видимо нехватает опыта переделать под себя...


 
Tos-ka   (2007-10-22 23:59) [24]

> видимо нехватает опыта переделать под себя...

в точку


 
Leonid Troyanovsky ©   (2007-10-23 09:07) [25]


> Tos-ka   (22.10.07 23:59) [24]

> > видимо нехватает опыта переделать под себя...

> в точку

Если контрол не обрабатывает нужные сообщения,
то, скорее всего, все это и не понадобится.

--
Regards, LVT.



Страницы: 1 вся ветка

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

Наверх




Память: 0.53 MB
Время: 0.019 c
1-1188223761
DevilDevil
2007-08-27 18:09
2007.11.18
WMNCHITTEST и HTCAPTION


15-1192177213
KSergey
2007-10-12 12:20
2007.11.18
Планирование системой тработы одного потока в многопроц. системе


2-1193223678
Ega23
2007-10-24 15:01
2007.11.18
Parent и Owner


8-1169458164
efremovnd
2007-01-22 12:29
2007.11.18
работа с графикой


15-1191941304
Pkrge
2007-10-09 18:48
2007.11.18
Подскажите хорошие книги для изучения SQL