Форум: "Начинающим";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
ВнизПослать сообщение из своей программе в чужую Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.04 c