c# 他プロセス起動 リダイレクト(入力) バイナリファイルの場合
現在、c#で他プロセスを起動させるプログラムを組んでいるのですが、リダイレクトでつまづいています。
(コンパイルが出来ない->どう記述すれば良いのか分からない。)
ファイルストリームのReadはデータをByteの配列に格納しますが、リダイレクト入力のwriteはcharの配列を引数としているみたいで、どう記述すれば良いのか分かりません。
記述方法または参考URLを教えていただけないでしょうか?
--source--
System.IO.Stream retstream = new FileStream(wkPath, FileMode.Open, FileAccess.Read, FileShare.Read);
System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
myProcess.StartInfo.FileName = "C:\\Program Files\\proc\\process.exe";
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardInput = true;
myProcess.StartInfo.RedirectStandardOutput = true;
if (strmInput.Length > 0) {
int num = 0;
byte[] bufWk = new byte[65536];
while (true) {
num = strmInput.Read(bufWk, 0, bufWk.Length);
if (num == 0) {
break;
}
myProcess.StandardInput.Write(bufWk, 0, num); //←コンパイルエラー
}
}
--エラー内容--
System.IO.TextWriter.Write(char[], int, int)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
引数 '1': 'byte[]' から 'char[]' に変換できません。
お礼
すいません。 解決はできなかったのですが、 作業内容がかわってやらなくてもいいことになりました^^; どうもありがとうございました。
補足
すいません。いろいろ試してみたのですが、よくわからないので、補足をお願いします。 例えば... ・project1,project2の2つのプロジェクトがあります。 ・project1を起動します。 ・project1のFormにあるボタンを押すとproject2がデバッグモードで起動します。 ・project2の途中にブレークポイントをおき、そこで止めます。 ↑というようなことをしたいのですが、コマンド引数を使うとできるのでしょうか?