Главная страница
    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.04 c
2-1193114182
AleKo
2007-10-23 08:36
2007.11.18
Перечисляемый тип.


15-1192359213
Kostafey
2007-10-14 14:53
2007.11.18
С днем рождения ! 14 октября


2-1192865067
apic
2007-10-20 11:24
2007.11.18
Рисование на компонентах


3-1183542343
HID
2007-07-04 13:45
2007.11.18
Группировка и суммирование строк в таблице dbf


15-1192614681
исследователь
2007-10-17 13:51
2007.11.18
проблема с событием onSubmit





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский