Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Очередь сообщений


Автор: Ksen 3.10.2006, 09:35
Здравствуй!
Помогите новичку))) 
Есть в Windows xp очереди сообщений (исходящие, общие, частные и т.д.) Моей задачей является сформировать сообщение, создать свою очередь и поставить в нее сформированное сообщение.
На вид все просто....но что-то я уже не первый день роюсь и толком даже литературы найти не могу...или смотрю не туда((( Объясните, пожалуйста как создать сообщение и поставить его в очередь.....как это??? что это?? и с чем его едят??? или куда смотреть....в какую сторону рыть???

Автор: Snowy 3.10.2006, 09:49
Зачем создавать свою очередь если есть системная?
Поставить сообщение в очередь - SendMessage или PostMessage - дальше уже зависит от того, что  посылать и главное кому.

Автор: Ksen 3.10.2006, 09:55
Snowy, Нет...системная не подходит....Нужно в частной очереди, создать свою и ставить туда сообщения. Другая программа из этой очереди будет забирать эти сообщения и пересылать на другой комп...

Добавлено @ 09:57 
Мне тут чего-то вообще начитают подсказывать, что для этого нужно ставить Framework и с ним колдовать....((

Автор: Snowy 3.10.2006, 10:27
Ну заведи себе отдельное невидимое окно, и шли свои "частные сообщения ему".
Можно по UDP бросать.
Просто не совсем ясны цели.

P.S. а фреймворк тут вообще при чём?

Автор: Ksen 3.10.2006, 10:40
Snowy, подожди....а по подробней....что мне даст это окно??? если мне сообщение нужно в частную очередь поставить?? млин, я не понимаю(((((

Цели есть....только я тебе их не скажу))) Не я это придумала....по UDP тоже не передать...не та ситуация..

Автор: Snowy 3.10.2006, 10:56
Ну ты сам сказал
Цитата(Ksen @  3.10.2006,  09:55 Найти цитируемый пост)
Другая программа из этой очереди будет забирать эти сообщения и пересылать на другой комп...
Так пусть она заводит отдельное невидимое окно для отлова сообщений.
Все "свои сообщения слать этому окну".
Очередь сообщений этого окна и будет твоей собственной очередью.

Если б я знал, чего именно ты хочешь, я бы сказал более конкретно.
А так лишь могу предположить только основываясь на твоих словах.
А тут всё ошень неоднозначно.
Может ты вообще имеешь в виду не виндовые сообщения, а текстовые. Кто знает...

Автор: Ksen 3.10.2006, 11:07
Snowy, а может мы друг друга не понимаем.....я имею ввиду очереди, которые находятся в Управлении компьютером...т.е. Мой компьютер->Управление->Службы и приложения->Очереди сообщений->Частные очереди----а вот тут я уже должна создать свою очередь, например, isq_out---и сюда я должна ставить сообщения, которые буду формировать сама, данные этого сообщения будут браться базы....

Автор: Snowy 3.10.2006, 11:30
А, вон даже как.
Тогда сразу нужно было пояснить. Ибо "сообщение" - понятие растяжимое, обычно применяемое к WinAPI сообщениям.

Тогда всё в разы сложнее, ибо это COM+
А по данной теме даже не знаю, что посоветовать и куда обратиться...

Могу только дать пару линков на msdn. Больше помочь ничем не могу...

http://msdn.microsoft.com/library/rus/vbcon/html/vbwlkwalkthroughcreatingtransactionalqueuewithcomservices.asp
http://msdn.microsoft.com/library/rus/default.asp?url=/library/rus/cpguidenf/html/cpconwritingservicedcomponents.asp

Добавлено @ 11:36 
В справке по дельфи есть раздел "Creating MTS or COM+ objects"
Может в умной книжке что-нить подробней расписано про COM+.
Я в этом не силён...

Автор: Ksen 3.10.2006, 11:57
Snowy, Лады...почитаю))) И на этом спасибо)))

Люди, но если кто-нибудь что-нибудь знает на эту тему))) Напишите!!! Буду признательна)))

Автор: Ksen 15.10.2006, 20:40
Нашла классную статью по работе с очередями....
http://www.ishodniki.ru/art/artshow.php?cat=1&id=461&show=net

научилась отправлять сообщения в очередь если она создана....
Код

var
msq:messagequeue;
begin
msq:=messagequeue.Create;
msq.Path:='.\private$\qqqqqq';
msq.Send('Сообщение');
 

и никак не дойдет до меня, как создать эту очередь!!!!??  Create...(((почему-то не создает...
например...... msq:=messagequeue.Create('.\private$\qqqqqq');....не получается...
Помогите, пожалуйста))


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)