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

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

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

Re[2]: Windowsアプリケーションでコンソールを表示する方法


(過去ログ 133 を表示中)

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

■78661 / inTopicNo.1)  Windowsアプリケーションでコンソールを表示する方法
  
□投稿者/ meme (1回)-(2016/02/03(Wed) 12:04:08)

分類:[C#] 

Windowsアプリケーションでコンソール画面を表示する方法を探しています。

プログラムの起動の引数の有無で動作を分けたいと考えています。

引数がない
→ウィンドウズフォームが起動する。

引数がある
→コンソールが起動する。


プログラムが起動したときの最初の処理である
static void Main(string[] args)
ここで起動時の引数を取得できるのでここで処理を書き込めば良いかと思っているのですが
コンソールを表示する方法が見つかりませんでした。

ネットで検索してみると、プロジェクトのプロパティで【出力の種類】をコンソールアプリケーションに
すればよいという意見ばかりで、ソースのどこかでコンソールを表示するという書き方が見つかりませんでした。

プログラムのコードの中でコンソール画面を表示するにはどのように書けばよろしいでしょうか?

お分かりの方がいらっしゃいましたらよろしくお願いいたします。

OS:Windows7 32bit
開発環境:VisualStudio208
言語:C#

引用返信 編集キー/
■78663 / inTopicNo.2)  Re[1]: Windowsアプリケーションでコンソールを表示する方法
□投稿者/ shu (801回)-(2016/02/03(Wed) 12:32:18)
No78661 (meme さん) に返信

コンソールアプリケーションにすればコンソール画面が表示されますが
処理が終了したら閉じます。

コンソール画面を表示してどうしたいのでしょう?
引用返信 編集キー/
■78664 / inTopicNo.3)  Re[1]: Windowsアプリケーションでコンソールを表示する方法
□投稿者/ 774RR (375回)-(2016/02/03(Wed) 12:33:41)
コンソール、つまりコマンドプロンプトからそのコマンドを起動する場合を考える。
その操作をしたプログラマは自分が使っているコンソール上に結果が表示されることを期待してるだろう。
それが通常の「コンソールアプリケーション」の挙動。

「コンソールを起動する」ってことは、上記のような使い方をしたときに「別コンソールが開く」ということだ。
オイラならそういう挙動は却下。
皆が口をそろえて「コンソールアプリケーション」にしろ、と言うのも当然だろう。

別コンソールを開きたいのなら Win32API の AllocConsole 等でできるよ。
.NET から使いたいのであれば pinvoke (System.Runtime.InteropServices) で。

引用返信 編集キー/
■78666 / inTopicNo.4)  Re[2]: Windowsアプリケーションでコンソールを表示する方法
□投稿者/ meme (2回)-(2016/02/03(Wed) 13:41:23)
皆様、返信ありがとうございます。

なぜコマンドラインで表示したかったかというと、引数があった場合はその引数を使って処理をして、結果をコマンドラインで表示したいと考えたからです。
引数がない場合はウィンドウズフォームが起動して、処理の結果をMessageBoxなどで表示すればいいなと思いまして。


コンソールアプリケーションとしてFormを表示することもできるのですが、そうなるとFormが表示されているのにコマンドラインが表示されているのでユーザーにとっては
『なんで黒い変なのが出てるんだ?』と勘違いして消されたりしないかなと不安に思ったからです。


どうやらコンソールを表示するというのは作り方としてあまり好ましくないようですね。
コンソールアプリケーションとして作成して、引数がなかった場合はコンソールそ最小化や非表示にしてFormを表示するという方向で考えていようと思います。

ありがとうございました。

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -