|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
|
zhgutov |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
Есть программа №1. Можно запустить несколько ее экземпляров. Нужно сделать так, чтобы программа №2 вызывала определенную функцию во всех запущенных копиях программы №1. Как это сделать средствами WinAPI / MFC?
Это сообщение отредактировал(а) zhgutov - 3.4.2007, 15:09 --------------------
Приполз. Увидел. Укусил. |
|||
|
||||
Sartorius |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 1 Всего: 37 |
Можешь сделать пару LPC клиент/ LPC сервер. Хоть не документировано, но вроде все еще используется. COM объект можешь зарегистрировать еще...
Это сообщение отредактировал(а) Sartorius - 3.4.2007, 15:14 |
|||
|
||||
zhgutov |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
Sartorius
LPC клиент/ LPC сервер — это что? Можешь дать название какой-либо связанной функции, чтобы можно было найти doc в MSDN? Добавлено через 4 минуты и 23 секунды А можно обойтись без COM-объектов? --------------------
Приполз. Увидел. Укусил. |
|||
|
||||
Sartorius |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 1 Всего: 37 |
||||
|
||||
zhgutov |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
Sartorius
Спасибо! --------------------
Приполз. Увидел. Укусил. |
|||
|
||||
Earnest |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
А просто сообщение специально созданное послать, не проще? Если возврат не интересует, конечно.
Добавлено через 3 минуты и 56 секунд
А в программе №1 просто включить обработку этого сообщения. -------------------- ... |
|||
|
||||
zhgutov |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
Earnest
А просто сообщение специально созданное послать, не проще? Нужно, чтобы задержка между посылом и приемом была минимальной и одинаковой для всех программ. Желательно в пределах 10—20 мс. --------------------
Приполз. Увидел. Укусил. |
|||
|
||||
Partizan |
|
|||
Let's do some .NET Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: нет Всего: 67 |
Earnest, хммм...а если ещё N левых прог обработают это сообщение? =)
имхо можно просто создать нэймд пайп...прога 2 пишет в этот пайп команду...экземпляры проги 1 из этого пайпа её считывают -------------------- СУВ, Partizan. |
|||
|
||||
Earnest |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Зарегистрируй свое сообщение (RegisterWindowMessage), и никто левый его не обработает.
Добавлено через 4 минуты и 29 секунд
Посылка сообщения - это всего лишь помещение его в очереди всех работающих потоков (процессов). Потом они его будут его извлекать и обрабатывать по мере получения управления - так же как и с любым другим способом запуска. И одновременно уж точно процедура вызвана не будет. -------------------- ... |
|||
|
||||
Nastya |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 3 Всего: 44 |
Зачем левых, ты можешь послать конкретному окну.. в чем проблема ? Все зависит от втоей конкретики, надо ли тебе передавать параметры в эти функции ? Можно например юзать объекты ядра (типа event) и выставлять их когда что-то должно отработать ... Это как например, давай конкретнее задачу -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
Partizan |
|
|||
Let's do some .NET Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: нет Всего: 67 |
Nastya, вопрос был не от создателя темы) Earnest gthdsv параметром написала HWND_BROADCAST вследствие чего он и был задан... у меня почему-то было представление что несколько прог могут одно и то же пользовательское сообщение обработать...(со стандартными виндовыми сообщениями помоему дела обстоят именно так)
по поводу вопроса...Earnest на вроде него ответила и я всё понял ;) з.ы. вопрос в догонку тогда можно ли сделать чтобы несколько моих приложений воспринимали сообщение...допустим такое
Это сообщение отредактировал(а) Partizan - 10.4.2007, 11:03 -------------------- СУВ, Partizan. |
|||
|
||||
Earnest |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
А что мешает? Другое дело, что теоретически другие программы могут объявить себе сообщение с тем же номером (но подразумевать совершенно другое), и тут может возникнуть конфуз...
Эта проблема решается с помощью зарегистрированных текстовых сообщений - маловероятно, чтобы разные приложения придумали одинаковые строки, особенно если их делать подлиннее и предварять своими префиксами (напр. имя программы или, если быть параноиком, гуид сгенерить). Т.е., конечно, рассылать бродкастом нужно либо стандартные сообщения, либо заведомо уникальные (т.е. зарегистрированные). -------------------- ... |
|||
|
||||
Doc_d0s |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 206 Регистрация: 15.12.2004 Где: в кресле Репутация: нет Всего: 3 |
Используй MailBox если к скорости не категорично относишься
--------------------
Админ- это вождь Apache'й :) |
|||
|
||||
Estuark |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 19.2.2023 Репутация: нет Всего: нет |
Модератор: Сообщение скрыто. |
|||
|
||||
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |