![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перехват сообщения другого приложения [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 (детали см. в справке). Обычным способом. И принимайте тоже обычным способом.