2015-11-03 88 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