在VB中能否读取另一程序中某public变量的值
我有两个.exe程序,需要在一个程序中读取另一程序某变量的值,应该如何实现?

解决方案 »

  1.   

    共享内存(GlobalAlloc函数)、DDE、文件。
      

  2.   

    用 ActiveX EXE 吧,到这里下载范例:
    hissoft.nease.net\multiXC.rar
      

  3.   

    首先弄明白,另一个程序是你写的程序还是别人的程序.
    如果是自己写的程序那倒是很简单,无非文件交换,数据库交换,内存交换,等等.
    我觉得使用DDE交换是比较容易的一种方法,给你个例子:建一个工程名叫:DDESOURCE,FORM1的LINKMODE属性设为:1-source; LINKTOPIC属性设为:FORM1
    上面放一个TEXT控件,名为:TEXT1
    编译成EXE,运行之.再建一个工程:FORM1上放一个LABEL控件:
    在FORM_LOAD 事件中写代码:
    Private Sub Form_Load()
    Label1.LinkTopic = "DDESOURCE|FORM1"
    Label1.LinkItem = "TEXT1"
    Label1.LinkMode = 1 'AUTO
    End Sub编译成EXE,运行之.你可以看到LABEL1上显示的就是DDESOURCE的TEXT1上的内容了,并且你更改TEXT1中的内容,第二个程序上的LABEL1上的内容也会同步更改.一定要先运行第一个工程,否则第二个工程运行时会找不到数据源报错
      

  4.   

    楼上兄弟的答复看似。。MSDN的一个解决方法,我想楼主也许是要两个不同程序交换数据,或者说你要用自己的程序去HOOK人家。没办法,VB天生缺陷,不论是远线程HOOK还是API HOOK等等,都需要一个DLL,这个DLL必须是真正意义上的,而不是VB写的那种。所以呢,不大好办啊。最近在研究这个,但是成果很微小,嘿嘿,等差不多了再分享吧。