读书人

EXE间传值有关问题

发布时间: 2012-01-14 20:02:35 作者: rapoo

EXE间传值问题?
我做了一个项目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中接收不到值,请问应怎样修改或有什么办法?

[解决办法]
tt是string argv[]里面得,你里面可以拿得到,这是启动参数
[解决办法]
还可以把参数信息保存到注册表总, a写,b读。如果有数据库,还可以将参数写数据库中。
[解决办法]
在启动得时候把参数给目标.
正真得exe间传值当时研究过,在windows下面一般有这样几种方法:(写文件,据库不算得)
1.dll共享段,也叫data_seg共享
2.虚拟内存
3.sendmessage(适合有窗体的)
4.DDE,微软的一套
5.COM/remoting
6.Net send(Tcp/udp等等了)
[解决办法]
消息队列
[解决办法]
同意
superxiaomm(小美)

lz的问题属于进程间的通信,可以去网上找找相关的方法。

[解决办法]
还可以用序列化把你要传递的对象写成XML序列化文件,然后在另一个EXE中读取还原.
[解决办法]
你说的这种情况我倒有个API的完整解决方案,用这种方法我已经处理完一个特别大的项目,但是现在没有时间整理,如果你能等过10多天我整理出来后给你
[解决办法]
你的属于进程间的通信问题,如果是启动时获取的话你的Start传送参数然后获得是行的通的,如果不是这样的话,那就要用其他的方法了,我用的一个就是用Remoting方法,具体就是做个远程类,然后构建服务端和客户端,这样就可以进行通信了,采用读写什么东西的性能不行,而且也不能保证,MSMQ不见得没台机子都装了,TCP什么的难度比较大,呵呵,还是Remoting比较合适,简单,没几行代码就可以搞定,搞个线程监听消息就可以了.需要的话我可以提供我写的一个类.
[解决办法]
lz把你的需求和主要的问题详细描述下把.
[解决办法]
楼上说的对

按题目吧,楼上的第一个回答是对的。
但不符合你需求,所以,提问时最好把问题描述清楚些
免得还要去猜你的意思
[解决办法]
关注
[解决办法]
顶一下,学习中!
[解决办法]
顶!

读书人网 >C#

热点推荐