2015-11-03 96 views
0

我写在C#的启动程序处理用户输入,我希望它的相应的输出字符串被管道输送到外部程序。外部程序是一个预编译的C#可执行文件,它是报废的,所以我不能轻易修改它。C#数据粘贴到ExternalProcess

我可以很容易地推出采用ExternalProcess所需的程序,但没有看到超过发送数据的任何手段。我期望的功能调用如下所示:

string myString = "string to pass over" 
Clipboard.SetText(myString); 

Process ExternalProcess = new Process(); 
ExternalProcess.StartInfo.FileName = "Notepad.exe"; 
ExternalProcess.Start(); 

// some kind of paste command here... 
// ExternalProcess.magicpaste(myString); 

ExternalProcess.WaitForExit(); 

有没有更好的方法来解决这个问题?我以这种方式意识到管道文本中的安全隐含意义,但我需要创建一个简单的启动程序来支持传统项目。

+0

你能给什么遗留程序实际上没有更多的细节..以及多数民众赞成被通过对文本类型的一个例子。它是一个有点模糊的问候您发布什么,所以一旦拥有的Notepad.exe开始..然后在你的情况下,你一旦你关闭文件,你期望做什么.. – MethodMan

+0

@MethodMan我真的只需要传递一些纯文本,因此记事本的例子。基本上我只需要在另一个程序内部的表单中自动填充字段。 – sam

+0

看看这里http://stackoverflow.com/questions/16057063/how-to-pass-parameters-to-another-process-in-c-sharp,如果这并没有帮助做一个简单的谷歌搜索搜索下面的'C#传递参数到另一个进程' – MethodMan

回答

3

鉴于你的答案,你需要把一些文字在一个领域的意见,我怕你将要得到你的手脏。

该文本框(我认为它是什么),在此遗留应用程序,将是一个窗口。你将不得不找到它,并使用Platform-Invoke发送消息。 This question应该让你开始。

如果说控制有一个名字,则可以使用Spy++找到。

+0

感谢看起来很有希望。我会深入研究。 – sam