VB 进程间同步通讯

16 篇文章 0 订阅

例子的来源是MSDN,很早在MSDN上面看到的,后来找不到了,这次是从MSDN中VB例程cofee例程上摘录的,原理相同,都是用active,自定义事件.

1创建一个Active Exe工程,我叫pro_comm_pro吧,
2 添加一个标注模块 , Module1.bas:
  Public gCLS1 As cls1 '全局变量,保存对分发消息的类对象cls1的引用,以前没有定义为Public,不可以运行
3 添加类cls1.Cls
修改这个类的属性: Instancing = 2 'PublicNotCreate,不可以从外部进程创建
  其他属性使用默认
4 添加如下代码到cls1.Cls:
 

VB code
   
   
Private mvarmVal As String ' 属性变量 Public Event ValChange(vData As String ) ' 通知事件 Public Property Let mVal(ByVal vData As String ) mvarmVal = vData RaiseEvent ValChange(vData) End Property Public Property Get mVal() As String mVal = mvarmVal End Property

5 添加一个类clsH.Cls , 这个类仅仅是个接口, 没有多少功能的.属性默认, 代码如下:
 

VB code
   
   
Public Property Get GetCls() As Variant If gCLS1 Is Nothing Then Set gCLS1 = New cls1 End If Set GetCls = gCLS1 End Property

...
这个工程就完成了 , 生成exe文件吧, 我叫的是pro_comm_pro.exe

另外新建一个标注工程
1 新建工程
2工程->引用->浏览,选择我们pro_comm_pro.exe
3 在form1添加个command1 , 添加如下代码在form1.frm里面, 呵呵:

 

VB code
   
   
Dim WithEvents ss As cls1 ' ss,事件通知我们数据改变 Dim cc As clsH ' 连接器对象 ' 按这个按钮,修改cls1(ss)的属性值 Private Sub Command1_Click() ss.mVal = Time End Sub ' 初始连接器cc,初始cls1,事件分发对象ss Private Sub Form_Load() Set cc = New clsH Set ss = cc.GetCls End Sub ' 接受到数据改变事件 Private Sub ss_ValChange(vData As String ) Form1.Caption = ss.mVal End Sub

4 编译生成工程吧 , 我交cli.exe
运行2个cli.exe , 点击command1, 会看到, 两个窗口同时改变,需要更多同步信息

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝图

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值