我做了一个项目A;在它的下面打开另一个项目B并传递一个参数"tt",如下:
String  tt = "asdfg";
Process.Start("C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects\test\bin\test.exe", "tt");
在B中用下面的方法接收:
String  val= Environment.GetEnvironmentVariable("tt");
MessageBox.Show(val + "123");
但val中接收不到值,请问应怎样修改或有什么办法?

解决方案 »

  1.   

    tt是string argv[]里面得,你里面可以拿得到,这是启动参数
      

  2.   

    在启动得时候把参数给目标.
    正真得exe间传值当时研究过,在windows下面一般有这样几种方法:(写文件,据库不算得)
    1.dll共享段,也叫data_seg共享
    2.虚拟内存
    3.sendmessage(适合有窗体的)
    4.DDE,微软的一套
    5.COM/remoting
    6.Net send(Tcp/udp等等了)
      

  3.   

    同意
    superxiaomm(小美)lz的问题属于进程间的通信,可以去网上找找相关的方法。
      

  4.   

    还可以用序列化把你要传递的对象写成XML序列化文件,然后在另一个EXE中读取还原.
      

  5.   

    你说的这种情况我倒有个API的完整解决方案,用这种方法我已经处理完一个特别大的项目,但是现在没有时间整理,如果你能等过10多天我整理出来后给你
      

  6.   

    你的属于进程间的通信问题,如果是启动时获取的话你的Start传送参数然后获得是行的通的,如果不是这样的话,那就要用其他的方法了,我用的一个就是用Remoting方法,具体就是做个远程类,然后构建服务端和客户端,这样就可以进行通信了,采用读写什么东西的性能不行,而且也不能保证,MSMQ不见得没台机子都装了,TCP什么的难度比较大,呵呵,还是Remoting比较合适,简单,没几行代码就可以搞定,搞个线程监听消息就可以了.需要的话我可以提供我写的一个类.