我有一个基于.net的Windows应用程序,它在内存中运行。我想从一个非基于.net的外部应用程序触发应用程序中的一个功能。我怎样才能做到这一点?触发应该是实时的。
答案 0 :(得分:3)
让第一个应用程序侦听TCP端口。使第二个应用程序连接到TCP端口并发送“WAKE UP LAZY PROGRAM”。让第一个应用通过做某事来回应。
答案 1 :(得分:2)
使用套接字将起作用。 命名管道也可以使用。
答案 2 :(得分:2)
如果程序不是.net,我建议发送或发送一条窗口消息:请参阅PostMessage
和RegisterWindowMessage
。要在.net程序中收到此类消息,我认为您可能需要PInvoke RegisterWndowMessage
,并覆盖您的WndProc
。
另一个很好的可能性是共享一个命名的互斥锁。
你应该用“实时”来定义你的意思:一方面在Windows上没有任何实时内容,另一方面当你开始退出时,反而说“近乎实时”或“软实时”然后许多解决方案成为可能。
答案 3 :(得分:0)
无法将XML消息字符串发送到正在非.net应用程序中侦听特定端口的.net应用程序。通过分析此XML消息,您可以调用.net应用程序中的特定功能..
疯狂猜测。
感谢 123Developer
答案 4 :(得分:0)
消息传递可能是要走的路。使用套接字也可以,但
a)可能会打开安全漏洞,并且
b)某些机器上的防火墙软件可能存在问题。
答案 5 :(得分:0)
CodeProject有一个使用.NET Remoting / IPC的示例: