MSMQ的VB操作代码/步骤(简化版)

原创 2004年06月30日 23:36:00

MSMQ的VB操作代码/步骤

1、安装MSMQ,获得Microsoft Message Queue 2.0 Objtec Libary
 在VB中添加类型库引用
2、声明需要用到的变量
 Dim msgqueue As MSMQQueue       '--队列
 Dim queryObj As MSMQQuery       '--查询
 Dim queueInfo As MSMQQueueInfo  '--队列信息
 Dim msg As MSMQMessage
3、创建(私有队列,本机上的)
 Set queueInfo = New MSMQQueueInfo
 queueInfo.PathName = "./Private$/in"
 queueInfo.Label = "InQueue"
 queueInfo.Create  '--创建队列

4、发送消息(假设消息队列已经创建)
 Set queueInfo = New MSMQQueueInfo
 queueInfo.PathName = "./Private$/in"
 ' queueInfo.Label = "InQueue"
 Set msgqueue = queueInfo.Open(MQACCESS.MQ_SEND_ACCESS, MQSHARE.MQ_DENY_NONE)
 If (msgqueue.IsOpen()) Then
     Set msg = New MSMQMessage
     msg.Label = "hi"
     msg.Body = "This is a msg test" '--可以是任何变量,只要支持Idispatch接口和持续化接口
     msg.Send msgqueue
     msgqueue.Close
     Debug.Print "Sended!"
  End If
5、主动接受消息(注意这是一个阻塞操作)
 Set queueInfo = New MSMQQueueInfo
  queueInfo.PathName = "./Private$/in"
 ' queueInfo.Label = "InQueue"
  Set msgqueue = queueInfo.Open(MQACCESS.MQ_RECEIVE_ACCESS, MQSHARE.MQ_DENY_NONE)
  If (msgqueue.IsOpen()) Then
      Set msg = msgqueue.Receive
     Debug.Print "recvied!" & msg.Body
  End If
6、也可以采用MSMQ事件来进行消息通告

Dim WithEvents evt As MSMQEvent

Dim queueInfo As MSMQQueueInfo
Dim q As MSMQQueue
Dim msg As MSMQMessage
Private Sub Form_Load()
  Set queueInfo = New MSMQQueueInfo
  queueInfo.PathName = "./Private$/in"
  'queueInfo.Label = "InQueue"
  Set q = queueInfo.Open(MQACCESS.MQ_RECEIVE_ACCESS, MQSHARE.MQ_DENY_NONE)
  Set evt = New MSMQEvent
  q.EnableNotification evt
End Sub

Private Sub evt_Arrived(ByVal q As Object, ByVal cursor As Long)
'  Dim b As Boolean
  Dim theq As MSMQQueue
  Set theq = q
  Set msg = theq.Receive()
 
  Debug.Print msg.Label + " body:" + msg.Body
 
  theq.EnableNotification evt
End Sub

注意其中的 Dim WithEvents evt As MSMQEvent 语句

7、意义
可以异种程序的跨进程消息交换,甚至vb程序同.net程序的交互
如果配置成企业MSMQ,可以构成分布消息处理系统,对于大型应用很有利

 

 

MSMQ 学习总结

MSMQ(MicroSoftMessage Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一...
  • u010701641
  • u010701641
  • 2016年03月09日 15:50
  • 2752

关于MSMQ 队列无权删除的处理方法

我看到有的伙伴已经遇到过这种方法,并且提出了处理方法。 原文如下:http://blog.sina.com.cn/s/blog_48c75ce20102uycq.html 在操作MSM...
  • huangyi003
  • huangyi003
  • 2017年03月30日 17:40
  • 485

MSMQ的安装

基于MCF开发一个白板交互系统,在使用类MessageQueue创建消息队列的时总是提示出错,原来是MSMQ没有安装,MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不...
  • saloon_yuan
  • saloon_yuan
  • 2013年06月29日 21:42
  • 3073

MSMQ--消息队列

MSMQ--消息队列 。用create方法创建你指定路径的消息队列,使用delete方法删除一个已经存在的消息队列。。使用exists方法判别是否存在一个消息队列。。使用GetPublicQueues...
  • dankes
  • dankes
  • 2005年07月06日 13:21
  • 5066

windows 消息队列Microsoft Message Queue (MSMQ)实例

windows 消息队列 实现:发送消息、接收消息、多线程监听消息
  • zss793648186
  • zss793648186
  • 2016年07月06日 22:37
  • 1202

Message Queuing(MSMQ)学习之旅(二)——创建Queue

1.前言 应用程序创建的Queue根据你是否希望被其他程序找到可分为Public Queue和Private Queue,Public Queue会在directory service中注册,有...
  • gjw198276
  • gjw198276
  • 2013年03月18日 16:02
  • 2597

C# MSMQ 原理简单介绍

MSMQ(微软消息队列)是Windows操作系统中消息应用程序的基础,是用于创建分布式、松散连接的消息通讯应用程序的开发工具。消息队列和电子邮件有着很多相似处,他们都包含多个属性,用于保存消息,消息类...
  • GYY_2046
  • GYY_2046
  • 2015年10月12日 11:24
  • 1343

MSMQ-发送消息到远程专用队列path格式

在工作组模式下,远程访问专用队列。在网上找到一篇文章,翻译了一下。 最后结论,直接使用多元素格式名方式,利用IP地址直接对单个或多个目标发送消息      MessageQueue rmQ...
  • CsethCRM
  • CsethCRM
  • 2014年04月14日 13:23
  • 3445

VB的一些常用代码***(转贴)***

以下为VB的一些常用代码所有内容为转贴 (贴很长)如果以下的转贴对原作者有不便之处请告之 用Mid$命令超速字符串添加操作大家都知道,&操作符的执行速度是相当慢的,特别是处理长字符串时。当必须重复地在...
  • pzhan
  • pzhan
  • 2007年02月04日 13:34
  • 2059

MSMQ消息队列与WCF MSMQ的认识与使用

先说一下MSMQ MSMQ全称MicroSoft Message Queue,微软消息队列,是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布...
  • xiaoyiyz
  • xiaoyiyz
  • 2015年03月19日 11:20
  • 2142
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MSMQ的VB操作代码/步骤(简化版)
举报原因:
原因补充:

(最多只允许输入30个字)