如何与c#中的单独应用程序进行通信

时间:2011-03-31 13:11:47

标签: c# .net

我的计算机上运行了一个.exe。如何从c#连接到它?

例如notepad.exe正在运行。我想从Windows窗体应用程序或控制台应用程序窗体写入记事本。我怎么能这样做?

4 个答案:

答案 0 :(得分:2)

两个建议:

使用Process.Start()

启动进程

http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start.aspx

或使用Windows Script Host中的SendKeys

http://msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspx

答案 1 :(得分:1)

这取决于你想要做什么。使用SendKeys是最简单的解决方案,但它很粗糙,功能有限。使用SendMessage可以做得更多更好,但这将更难编码。

答案 2 :(得分:0)

看看this tutorial。据我所知,它完全符合您的要求。我意识到它是用德语写的,所以只需查看源代码即可。

答案 3 :(得分:0)

从Windows中的另一个进程读取至少可以说是有问题的。我们前一段时间做了一些工作,它涉及使用汇编语言挂钩到低级Win32 API。从本质上讲,它真的不愉快,如果你能避免这样做,你头上会有更多的头发。

如果您要发送的应用程序理解您尝试发送给它的消息,则使用SendMessage将起作用。我怀疑你在以后的Windows版本(Vista + Win7)上开始遇到安全问题,并且必须以提升的权限运行你的应用程序。

你为什么要这样做?