- PR -

コマンドプロンプト形式の外部ソフトウェアに対し入力・出力の操作を行いたい。

1
投稿者投稿内容
清華
ベテラン
会議室デビュー日: 2005/12/21
投稿数: 50
投稿日時: 2006-06-19 15:43
清華です、いまPerlのGUIデバッガを作ろうと思っています。

Perl5.6からはデバッガとしてコマンドライン形式のデバッガがついているのですがそれを利用してGUIのデバッガを作ろうと思っています。

で、いまコマンドの入力に躓いています、コードはこんな感じです。
コード:
// 起動
public Process Run(string filename)
{
	this.filename = filename;

	ProcessStartInfo psi = new ProcessStartInfo();
	
	// Get ComSpec
	psi.FileName = "perl"; //Environment.GetEnvironmentVariable("ComSpec");
	
	// Allowed to read output
	psi.RedirectStandardInput = true;
	psi.RedirectStandardOutput = true;
	psi.UseShellExecute = false;
	// Don't show window
	#if(!DEBUG)
		psi.CreateNoWindow = true;
	#endif
	// Set Arguments
	psi.Arguments = string.Format("-d {1}",debugger,filename);
	// Start
	process = Process.Start(psi);
	
	return process;
}
// 利用
process = debugger.Run(filename);

StreamWriter writer = process.StandardInput;

writer.WriteLine("b 49");
writer.Flush();



実行結果が
コード:

Loading DB routines from perl5db.pl version 1.23
Editor support available.

Enter h or `h h' for help, or `perldoc perldebug' for more help.

main:D:\My Document\SharpDevelop Projects\pdb\bin\Debug\blog.cgi:9):
9:      require 5.6.0;
  DB<1>


のようになり"b 49"が入力されていません。

かなりいろいろと試しているのですがどうもうまくいく気配がありません。

違う方法でもデバッガを外部から操作できる方法ならばOKなので、どなたかご教示お願いします。

p.s.
Perlデバッガがわからない方はコマンドラインからのTelnet見たいなものだと思っていただければいいです。

p.s. 2
というか、こういうプログラムの方法でいいのかなぁ…向こうの出力の仕様が変わったら作り変える必要があるんだよなぁ…perl用のdll等があれば教えていただけると助かります。
1

スキルアップ/キャリアアップ(JOB@IT)