
您好有一个VB6 windows应用程序(old.exe)和一个单独的C#Winforms应用程序(new.exe)。 他们都在同一台windows机器上运行。
我可以访问VB6和C#源代码,但是应用程序需要保持独立。
如果两者都在运行并且相互了解(进程ID), 那么从一个窗口向另一个窗口发送消息的最佳方式是什么?
更新:
等待外部过程完成
file.copy()从networking共享到另一个共享在同一台机器上通过networking复制文件?
是否有可能检测主应用程序线程是否作为windows服务运行,而不使用编译指令?
PowerShell中的echo和Write-Host有什么区别?
如何使初始forms最初不可见或隐藏
在这种情况下,我只是在讨论非常罕见的小信息 – 例如,使用“发票67”这样的小信息来更改您正在查看的标签,
双向消息传递会很好,但VB6到.Net是最重要的。
如何在特殊的PowerShell链命令4命令提示符?
如何将“唤醒时需要密码”上的值更改为错误编程?
在尝试使用windows的mono-4.2.2时,请保持Exec格式错误
如何编写一个连续监听的服务器作为服务
如何获得当前windows用户的*networking身份,而不是他们的交互式login身份?
前面两个答案都没有考虑到这可能是一个多帐篷的环境,甚至跨越你的领域。 当你进入分布式系统时,你应该考虑消息传递,而不是进程间通信,随着时间的推移会限制可伸缩性。
对于本地解决方案,考虑MSMQ,这里有大量的文档,展示了这个消息传递基础架构的简单性。
对于更广泛的场景,您应该考虑windows Azure存储队列,您将获得几乎相同的可用性,但具有更广泛的可访问性和改进的管理工具。
MSMQ是特定领域的,由Azure跨越全球。
同意克莱的意见。
不过,我会在黑暗中进行一次刺探,最明显的答案是:
.NET(w / WCF)支持IPC和命名管道,用于本地进程内通信。
这里有一个使用命名管道的主题的链接…但它是超级老,并不使用WCF,因为它应该…但点是相同的: http : //www.switchonthecode.com/tutorials/interprocess-通信使用命名管道在csharp更新版本使用WCF: http : //www.switchonthecode.com/tutorials/wcf-tutorial-basic-interprocess-communication
下面是windows的IPC替代品的一个或多个完整列表。
http://msdn.microsoft.com/en-us/library/aa365574%28v=vs.85%29.aspx
它们中的大部分都可以在VB6和C#中使用。
我用于这个目的的解决方案是在进程之间建立TCP通信。 它允许双向通信。 作为奖励,如果您将其中一个应用程序移动到另一个应用程序中,您的应用程序将继续运行,只需很少的更改。
在.NET中,你可以使用大量的类来实现这个目的(在System.Net中,从低级到高级的东西很多)。 在VB6中,您可以使用IDE附带的Winsock控件。 我使用Dart Winsock控件(成本$$$),只是因为它更加灵活。
我设置了两个应用程序来发送/接收已知模式的XML片段。 通常有一个属性告诉其他应用程序接收到的消息类型以及有效负载。
一个基本的解决方案(根据提供的信息):
创建传入和传出邮件的专用文件夹(一个应用程序传入文件夹将是其他传出文件夹)
将消息(或数据)以text / xml或其他格式写入输出文件夹(添加一个Source字段,以便应用程序知道从哪里来)
根据日期读取消息,并导入消息/数据
这允许与任何应用程序进行集成。
这个问题的最终答案
虚拟空调制解调器: http : //en.wikipedia.org/wiki/Null_modem#Virtual_null_modem
维基百科:
虚拟调制解调器是使用虚拟串行端口直接连接两个计算机应用程序的通信方法。 与虚拟调制解调器电缆不同,虚拟调制解调器是模拟计算机内硬件空调制解调器的软件解决方案。 硬件零调制解调器的所有功能也可在虚拟调制解调器中使用。 这有一些优点:
串行数据的传输速度更高(仅受计算机性能的限制)。 可以通过网络或互联网进行虚拟连接,从而减轻电缆长度的限制。 无限数量的虚拟连接是可能的。 不需要串行电缆。 计算机的物理串行端口保持空闲。
例如,DOSBox允许较早的DOS游戏使用虚拟调制解调器。
另一个常见的例子包括为用户应用程序提供标准tty接口的unix伪终端(pty),包括虚拟串行控件。 两个这样的ptys可以容易地通过应用程序链接在一起以形成虚拟调制解调器通信路径。
这个解决方案的亮点是:它不需要电缆 !
*注意; 这是一个幽默的尝试。 如果不好笑,请原谅我。
总结以上是内存溢出为你收集整理的我怎样才能从VB6应用程序发送消息到我的C#应用程序全部内容,希望文章能够帮你解决我怎样才能从VB6应用程序发送消息到我的C#应用程序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)