Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.049 c
15-1192223949
Черный Шаман
2007-10-13 01:19
2007.11.18
Запуск 64-битной гостевой ОС в VMWare в Win XP 32-bit.


15-1192372386
Denis__
2007-10-14 18:33
2007.11.18
Апокалепсис


15-1192238779
Dmitry S
2007-10-13 05:26
2007.11.18
В чем разница между Памятью и Виртю. памятью...


9-1162551661
megabyte-ceercop
2006-11-03 14:01
2007.11.18
Попинайте дему


15-1192126469
cber
2007-10-11 22:14
2007.11.18
Помогите решить задачу по тер-веру





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский