Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перехват сообщения другого приложения [D6, WinXP]


Леонид ©   (2004-11-02 14:11:00) 

Подскажите пожалуйста, как мне из одной проги послать сообщение, что бы в других своих прогах его отловить?
В сообщение должен передаться текст до 255 символов.


Reindeer Moss Eater   (2004-11-03 15:49:00) [1]

Чего не понял?
В кассе одна сумма, а проигранных треков - другая.


KSergey   (2004-11-03 15:47:00) [2]

> [7] Леонид   (03.11.04 14:45)
> В принципе  SendMessage(HWND_BROADCAST, WM_CopyData, WParam,
> LParam) мне подходит.
> Но тут после посылки сообщения вылетают разные левые окошки,
> в частности подключение к интернету из-за невозможности
> показа какой-то страницы в автономном режиме:(

А ведь в [6] предупреждали...

> [7] Леонид   (03.11.04 14:45)
> Есть подозрения, что ведущие тырят понемногу.

Не понял...


Reindeer Moss Eater   (2004-11-03 15:28:00) [3]

Либо вообще предложи реализовать полноценную поддержку плагинов.


Reindeer Moss Eater   (2004-11-03 15:27:00) [4]

Предложи им грузить свою DLL.
И вызывать из нее процедуру, передавая имя трека.


Леонид   (2004-11-03 14:45:00) [5]

В принципе  SendMessage(HWND_BROADCAST, WM_CopyData, WParam, LParam) мне подходит.
Но тут после посылки сообщения вылетают разные левые окошки,
в частности подключение к интернету из-за невозможности показа какой-то страницы в автономном режиме:(

Кроме своих нужд, тут ещё одна проблема.
Стоит в караоке клубе комп.
Кто знает, есть такой ванбаско караоке плеер.
Есть подозрения, что ведущие тырят понемногу.
Разработчики его не хотят расширять код специфическим бредом.
А я хочу кроме лога прокрученных песен делать всякие там анализы популярности и т.п.
Пару строк они согласны вставить.
Вот что бы им предложить, что бы я в своих будущих прогах отлавливал старт воспроизведения с именем файла?


TUser   (2004-11-03 12:20:00) [6]


> А в чём проблема рассылай всем HWND_BOARDCOAST(чё-то типа
> этого).

Не надо wm_copydata посылать бродкастом - его ловят все кому не лень.


n0name   (2004-11-03 12:11:00) [7]

А в чём проблема рассылай всем HWND_BOARDCOAST(чё-то типа этого).


Kair   (2004-11-03 11:38:00) [8]

Сначала:


> Леонид   (02.11.04 14:11)  
> Подскажите пожалуйста, как мне из одной проги послать сообщение,
> что бы в других своихпрогах его отловить?


Потом:


> А я не знаю конкретно приложение получатель, к тому же может
> их быть несколько и не моих.



KSergey   (2004-11-03 11:27:00) [9]

А как вы вообще содираетесь сдыть сообщение "не понятно кому"??? Я что-то тут не понял ничего.


Леонид   (2004-11-03 11:10:00) [10]

Да, спасибо Юра, но трабла в том, что для WM_CopyData используем только SendMessage,
в котором нужно явно указать хэндл.

procedure Button1Click(Sender: TObject);
var
 cd: TCopyDataStruct;
begin
 cd.cbData := Length(mySendText) + 1;
 cd.lpData := PChar(mySendText);
 SendMessage(FindWindow('TmyTarget', nil), WM_COPYDATA, 0, LParam(@cd));
end;

А я не знаю конкретно приложение получатель, к тому же может их быть несколько и не моих.
Возможно ли это реализовать как-то по-другому?
Кроме варианта поиска перебором всех окон и посылки им сообщения.


Юрий Зотов   (2004-11-02 21:43:00) [11]

Посылайте WM_COPYDATA (детали см. в справке). Обычным способом. И принимайте тоже обычным способом.


Наверх

Титульная страница Поиск, карта сайта Написать письмо