C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: フォームアプリケーションでConsole.ReadLine


(過去ログ 83 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■49099 / inTopicNo.1)  フォームアプリケーションでConsole.ReadLine
  
□投稿者/ GreenTea (1回)-(2010/04/22(Thu) 12:44:27)

分類:[C#] 

C#でフォームアプリケーションを作っています。
このアプリケーションは他のアプリケーションと連携する1つの部品で、インターフェイスには標準入出力ストリームを使っています。

しかし、フォームアプリケーションなので、コンソールウィンドウは表示させたくありません。
そこで、「ソリューションのプロパティ」→「アプリケーション」→「出力の種類」をWindowsアプリケーションに変更しましたが、
Console.ReadLine()で”ハンドルが無効です”と、エラーになってしまいます。

「出力の種類」をコンソールウィンドウにしないとConsole.ReadLine()は使えないのでしょうか。

解決方法がありましたら、ご教授下さい。

引用返信 編集キー/
■49102 / inTopicNo.2)  Re[1]: フォームアプリケーションでConsole.ReadLine
□投稿者/ 魔界の仮面弁士 (1633回)-(2010/04/22(Thu) 13:48:30)
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());
    }
  }
}

引用返信 編集キー/
■49104 / inTopicNo.3)  Re[2]: フォームアプリケーションでConsole.ReadLine
□投稿者/ GreenTea (2回)-(2010/04/22(Thu) 14:16:56)
魔界の仮面弁士 さん

返信有難う御座います。
提示して頂いたコードを実行したところ、当方でも正常に動作しました。
そこで調べなおしたところ分りました。

「ソリューションプロパティ」→「デバッグ」→「ホスティングプロセスを有効にする」

このチェックが入っていないとエラーになるようです。

有難う御座いました。
解決済み
引用返信 編集キー/
■49108 / inTopicNo.4)  Re[3]: フォームアプリケーションでConsole.ReadLine
□投稿者/ みきぬ (876回)-(2010/04/22(Thu) 15:16:22)
No49104 (GreenTea さん) に返信
> 「ソリューションプロパティ」→「デバッグ」→「ホスティングプロセスを有効にする」
>
> このチェックが入っていないとエラーになるようです。
>
ん、チェックありだとOKで、チェックなしだとエラーになるってこと?

だとすると、Visual Studio からではなく、exe を直接実行した場合は大丈夫?
これがエラーだと元も子もないと思うので、ぜひ確認を。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -