![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| NewLine |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Привет всем.
Кто подскажет чем нужно пользоваться для отправки сообщений между окнами в С#. И какое пространстово необходимо - using System..... В MFC юзал SendMessage, но здесь по-моему он не подходит. Спасибо. --------------------
Компания NewLineStudio - Разработка программного обеспеченияOn-CRM.ru - интернет CRM система |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
||||
|
||||
| NewLine |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Да, окна мои.
Мне нужно отправлять сообщениями между разными приложениями, а не одним. Это сообщение отредактировал(а) NewLine - 6.12.2006, 14:57 --------------------
Компания NewLineStudio - Разработка программного обеспеченияOn-CRM.ru - интернет CRM система |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Есть такая штука как Remouting: Распределенные приложения и сеть
Либо пошурши по System.Messaging
Но ремоутинг круче |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
SendMessage никто не отменял. Достаточно найти окно, которому мессага предназначена, и можно смело её отправлять. На форуме уже проходила тема, там я приводил пример.
Добавлено @ 15:49 P.S. System.Messaging - это не совсем то, точнее - совсем не то. Читать про Message Queue и что это такое и с чем едят. Это что-то вроде электронной почты в рамках одной сети, используемой для общения между компонентами распределённых приложений (гарантированная доставка etc.). Для простого "общения" двух окон это слишком тяжеловесная технология; WM_COPYDATA подойдёт, если одно из окон - в чужой проге; иначе лучше юзать remoting с каналом IPC (inter-process communications). -------------------- ![]() |
|||
|
||||
| NewLine |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Я попытался сделать все стандартными методами.
Нашел окно и отправил ему сообщение.
После этого в окне перегружаю функцию WndProc для отлавливания сообщения, но она попадает в бесконечный цикл и постояноо показывает мое сообщение. Это как-то не правильно. Как его вообще останавливать-то?
Спасибо. --------------------
Компания NewLineStudio - Разработка программного обеспеченияOn-CRM.ru - интернет CRM система |
||||
|
|||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Зачем вызывать base.WndProc ? Сообщение-то обработано. Вместо break надо делать return.
-------------------- ![]() |
|||
|
||||
| NewLine |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Если вообще убрать вызов base.WndProc(ref m), то вываливается с ошибкой.
Ставлю return все равно постоянно показывается сообщение. Может нужно как-то сообщение обнулять? --------------------
Компания NewLineStudio - Разработка программного обеспеченияOn-CRM.ru - интернет CRM система |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Ставить в какое-то значение нужно только результат m.Result, но для своих сообщений это не нужно. Кроме того, для начала надо было бы проверить, не пересекается ли WM_MYMESSAGE с существующим сообщением - а оно стопудово пересекается (WM_ENABLE имеет тот же код).
Добавлено @ 14:50 Отсюда мораль: юзайте незанятые сообщения (начиная с 0x0400). -------------------- ![]() |
|||
|
||||
| NewLine |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Твоя правда mr.DUDA.
Спасибо. --------------------
Компания NewLineStudio - Разработка программного обеспеченияOn-CRM.ru - интернет CRM система |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |