C#将数据粘贴到ExternalProcess中

时间:2015-11-03 19:01:07

标签: c# windows

我正在用C#编写一个处理用户输入的启动器,我希望将相应的输出字符串传送到外部程序。外部程序是一个预编译的C#可执行文件,它已经过期,所以我无法轻易修改它。

我可以使用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();

还有更好的方法吗?我通过这种方式意识到管道文本中所谓的安全含义,但我需要创建一个简单的启动程序来支持遗留项目。

1 个答案:

答案 0 :(得分:3)

鉴于你在评论中的答案,你需要在一个字段中放置一些文字,我担心你不得不弄脏你的手。

这个遗留应用程序中的文本框(我假设它是什么)将是一个窗口。而且您将不得不找到它,并使用Platform-Invoke向它发送消息。 This question应该让你开始。

如果所述控件有名称,您可以使用Spy++找到它。