|
■No49099 (GreenTea さん) に返信
> Console.ReadLine()で”ハンドルが無効です”と、エラーになってしまいます。
標準入力のデータを、どのように渡していますか?
当方では、WinFormアプリ(/t:winexe) としてコンパイルされた exe に対して、
(1) コマンドプロンプトから『ECHO あいうえお|C:\Sample\test.exe』
(2) コマンドプロンプトから『C:\Sample\test.exe<C:\Sample\text.txt』
(3) コマンドプロンプトから『C:\Sample\test.exe<NUL』
と実行してみたところ、いずれも Console.ReadLine で読み込むことができました。
/*
%WINDIR%\Microsoft.NET\Framework\v1.1.4322\csc.exe /t:winexe /noconfig /r:mscorlib.dll,System.dll,System.Windows.Forms.dll /out:test.exe test.cs
%WINDIR%\Microsoft.NET\Framework\v2.0.50727\csc.exe /t:winexe /noconfig /r:mscorlib.dll,System.dll,System.Windows.Forms.dll /out:test.exe test.cs
%WINDIR%\Microsoft.NET\Framework\v3.5\csc.exe /t:winexe /noconfig /r:mscorlib.dll,System.dll,System.Windows.Forms.dll /out:test.exe test.cs
*/
using System;
using System.Windows.Forms;
class Sample : Form
{
static void Main()
{
try
{
string x = Console.ReadLine();
if(x == null || x == "")
{
MessageBox.Show("標準入力が必要");
}
else
{
Sample y = new Sample();
y.Text = "[" + x + "]";
Application.Run(y);
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
|