C#不同程序间的访问怎么实现
在VB中可以调用SendMessage函向已经获得句柄的程序发送信息。如何使用C#实现一个程序向另一个程序发送信息,并且可以引发事件。我的意思就是在C#中定义一个事件,可...
在VB中可以调用SendMessage函向已经获得句柄的程序发送信息。如何使用C#实现一个程序向另一个程序发送信息,并且可以引发事件。
我的意思就是在C#中定义一个事件,可以接受其他程序发送来的信息 展开
我的意思就是在C#中定义一个事件,可以接受其他程序发送来的信息 展开
4个回答
展开全部
消息分为很多种:
进程内部消息、进程间消息、局域网内部消息、Internet消息等等。
我想你是要问进程间消息吧?
一般C#提供了很多进程间的消息,比如消息队列(MSMQ),窗口消息(SendMessage),Remoting,文件介质等等。
消息队列:就是在一个进程中通过消息队列将消息发送给另外一个进程,他不依赖于另外一个进程的程序是否有窗口句柄,只要有进程句柄就可以了。但是需要操作系统安装了MSMQ组件才能实现这个功能。
窗口消息:其实跟你说的VB的SendMessage类似,在C#下所有的窗口都可以通过重写一个protected override void DefWndProc(ref System.Windows.Forms.Message m)方法,来实现接收窗口消息的功能。该方法并非Form类显示继承给子窗口的,所以大多时候子窗口是不知道有该方法的。但是你如果按照上面的方法生命,也可以接收到所有发送到该窗口的系统消息。那么也就可以通过SendMessage的形式发送给任意你能过获得到窗口句柄的C#窗口了。但是该方法的缺陷是要处理很多系统消息,因为他会把所有系统发送的消息都接收到。还有一个缺点就是传输的内容比较简单,对于传输复杂内容的对象不太方便。最大的好处是不需要安装其他Windows组件。
Remoting:虽然是一个网络调用的组件,但是也可以实现进程间通讯的作用。而且可以做到进程间对象调用,对于复杂业务的支持较好。但是该方法实现起来较为困难,需要设计一套完整的框架体系才能很好的发挥他的作用。一般在大型系统中可以使用。
文件介质:这种方式是一种非常原始的方式,就是发送方吧要发送的内容存放到某个约定的文件夹,接收方定时扫描,他们都去读写某个文件,达到通讯的作用。这种方法是很早之前没有很好的进程间消息传递方法的时候,常用的方式。最大的好处就是简单,最大的麻烦就是可控性较差。
当然还有很多方式,我可能一下子也记不起来。
对于局域网内部,跨电脑或者跨网络的通讯,那么就更多的方式了,比如WebService,Socket等等。
我想你要根据你的实际需求来确定使用那种通讯方式。
进程内部消息、进程间消息、局域网内部消息、Internet消息等等。
我想你是要问进程间消息吧?
一般C#提供了很多进程间的消息,比如消息队列(MSMQ),窗口消息(SendMessage),Remoting,文件介质等等。
消息队列:就是在一个进程中通过消息队列将消息发送给另外一个进程,他不依赖于另外一个进程的程序是否有窗口句柄,只要有进程句柄就可以了。但是需要操作系统安装了MSMQ组件才能实现这个功能。
窗口消息:其实跟你说的VB的SendMessage类似,在C#下所有的窗口都可以通过重写一个protected override void DefWndProc(ref System.Windows.Forms.Message m)方法,来实现接收窗口消息的功能。该方法并非Form类显示继承给子窗口的,所以大多时候子窗口是不知道有该方法的。但是你如果按照上面的方法生命,也可以接收到所有发送到该窗口的系统消息。那么也就可以通过SendMessage的形式发送给任意你能过获得到窗口句柄的C#窗口了。但是该方法的缺陷是要处理很多系统消息,因为他会把所有系统发送的消息都接收到。还有一个缺点就是传输的内容比较简单,对于传输复杂内容的对象不太方便。最大的好处是不需要安装其他Windows组件。
Remoting:虽然是一个网络调用的组件,但是也可以实现进程间通讯的作用。而且可以做到进程间对象调用,对于复杂业务的支持较好。但是该方法实现起来较为困难,需要设计一套完整的框架体系才能很好的发挥他的作用。一般在大型系统中可以使用。
文件介质:这种方式是一种非常原始的方式,就是发送方吧要发送的内容存放到某个约定的文件夹,接收方定时扫描,他们都去读写某个文件,达到通讯的作用。这种方法是很早之前没有很好的进程间消息传递方法的时候,常用的方式。最大的好处就是简单,最大的麻烦就是可控性较差。
当然还有很多方式,我可能一下子也记不起来。
对于局域网内部,跨电脑或者跨网络的通讯,那么就更多的方式了,比如WebService,Socket等等。
我想你要根据你的实际需求来确定使用那种通讯方式。
展开全部
关注!
我知道怎么调用程序,不知道怎么发送!
关注ing~
我知道怎么调用程序,不知道怎么发送!
关注ing~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用管道
搜索关键字“ .net 管道”
搜索关键字“ .net 管道”
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
委托~!,,,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询