Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];

Вниз

Передача сообщения своей программе   Найти похожие ветки 

 
nikkie   (2001-12-20 10:05) [7]

>Dimaond Cat
>Сообщения шлются не окнам (это лишь картинка), а обработчикам
ты сам понимаешь, что говоришь? какая картинка, какие такие обработчики? а HWND в SendMessage - это тоже картинка?

>ikar
чем дальше в лес, тем более интересные подробности выясняются. проблема в том, что в момент срабатывания системный хук в dll находится в адресном пространстве другого процесса.

если ты посмотришь параметры SendMessage и PostMessage - есть два 4 байтовых параметра wParam и lParam. если тебе достаточно передать в твоем сообщении 2 числа - очень хорошо, если же тебе надо передать бОльшую структуру данных, то передать указатель на нее через, скажем, wParam можно только внутри своего процесса - этот указатель в пространстве другого процесса смысла не имеет.

однако есть специальное сообщение WM_COPYDATA, которое позволяет передать данные из одного процесса в другой. как его использовать - лучше прочитай хелп. в частности там сказано, что нельзя использовать это сообщение в PostMessage. поэтому если твой обработчик этого сообщения будет тормозить - получится то, чего ты боишься. значит при обработке WM_COPYDATA надо просто скопировать переданные данные куда-то, а обработку отложить сделав, например, PostMessage самому себе.

если не зацикливаться на сообщениях, то есть еще несколько способов ipc (inter-process communication): pipes, file mapping, sockets, com. вот только кажется, что некоторые (если не все) из этих способов будет тяжело использовать в системном хуке. я надеюсь, тебе все-таки 2 * 4 байта хватит...



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
14-57217
Merlin
2001-12-26 11:29
2002.02.18
Хороший программист характеризуется умением доказать почему задачу невозможно выполнить, когда ему просто лень её выполнять...


4-57266
relaxer
2001-12-20 11:43
2002.02.18
Помогите с Таймером


1-57051
Tadeush
2002-02-04 12:54
2002.02.18
цвет


3-57033
Dosimbek
2002-01-12 10:19
2002.02.18
Дельфи и Word!!


6-57175
TonnyS
2001-11-27 13:43
2002.02.18
Можно ли использовать бесплатные Socks-серверы для связи с помощью TNMmsg (например)





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