■No10236 (カンタービレ さん) に返信 回答、ありがとうございます! > 簡単なのは画面を持たないWindowsアプリケーションにしたらどうかと。 > コンソールアプリケーションで作ったクラスがあるなら、それをスタートアップクラスにして > 実行すれば何も表示されないと思いマス。 次のようにしてみました。 1.Windowsアプリケーションを作成 2.元々コンソールアプリケーションでMainメソッド内にあった処理を、 新たに作成したクラス「Class1.cs」内のstaticメソッド「run」内に移動。 3.Mainメソッド内を以下のように修正。 [STAThread] static void Main() { Class1.run(); } これでウインドウが表示されずに動くようになりました。 が、「スタートアップクラス」という言葉の意味がわかっていません。 上記のコードで、カンタービレさんの回答を満たしていますか? また、ウィザードで「Windowsアプリケーション」「コンソールアプリケーション」を選んだ場合の、 出来上がるソースの違いがよくわかりません。(少なくとも、usingの内容が違いますが、それ以外がわかりません) おしえていただけませんか? > コンソールアプリケーションでも起動側が抑止してあげればお望みの結果にもなりマスけど。 起動側というのは、コンソールアプリケーションのプログラム側のことではなく、 それを起動する側のプログラミング(別に作成した起動用プログラム?)ということでしょうか?
■No10287 (カンタービレ さん) に返信 >>僕が今作っているアプリケーションは、出力をコンソールに出さず、 >>テキストログとか、イベントログなんかに出す予定です。 >>それって、コンソールアプリとしては邪道だったりするんでしょうか? > > ぃゃ、全然邪道なんて思えないデスよ。 > コンソールに出た内容は、記録に残すには、出た内容をリダイレクトでファイルにでも出さないと > コンソール閉じたら残らないから分からなくなっちゃうし。 回答ありがとうございます。 邪道ではないとわかり、安心しました。 また、コマンドプロンプトがでないようにする方法についても、 ・ウインドウを持たない、Windowsアプリケーションにする。 →上記(■10239 / inTopicNo.3))のようなソースで実現可能。 ・コンソールアプリケーションで作成するが、起動する側でコマンドプロンプトの表示を抑制する。 →以下のようなソースで実現可能。 ProcessStartInfo psInfo = new ProcessStartInfo(); psInfo.FileName = @"c:\MyApp\ConsoleApp.exe"; // 実行するファイル psInfo.CreateNoWindow = true; // コンソール・ウィンドウを開かない psInfo.UseShellExecute = false; // シェル機能を使用しない Process.Start(psInfo); ということがわかりました。 とても助かりました。どうもありがとうございました!
- Child Tree -