C#コンソールアプリケーションのコンソールウィンドウを非表示にする


105

問題は、コンソールウィンドウが表示されないようにすることですが、ソリューションは実行されているはずです。ここでの私のポイントは、ウィンドウが表示されることなく、アプリケーションをバックグラウンドで実行し続けたいです。


2
アプリケーションが何をすべきかについてもう少し詳しく教えてもらえますか?それはサービスまたはWindowsアプリケーションであるように聞こえますか?その目的について少しの知識があれば、私たちはより多くのことを助け、これを解決する最善の方法を提案することができます。
Dave

そのキーロガーアプリケーション。Windowsサービスを使用しましたが、Windowsサービスで主要な状態を取得できません
SOF User

回答:


188

出力タイプをコンソールアプリケーションからWindowsアプリケーションに変更します。これは、Visual Studioの[プロジェクト]-> [プロパティ]-> [アプリケーション]で実行できます。

代替テキスト


4
コンソールウィンドウが点滅して戻ります。ウィンドウなしでアプリケーションを実行し続けるにはどうすればよいですか?
SOFユーザー

@SOFユーザー:アプリケーションをどのように起動しますか?エクスプローラまたはスタートメニューからダブルクリックしますか?
Dirk Vollmar

Console.ReadLine();も配置しました。
SOFユーザー

16
を取り外しますConsole.ReadLine。コンソールウィンドウがない場合は意味がありません。
Dirk Vollmar、

1
@KarolŻurowski:ここでの考え方は、何らかの形のUI(システムトレイのアイコンなど)も付属するアプリや、特定のタスクを実行し、完了時に自動的に終了するアプリに使用することです。どちらもない場合は、ログオフ/シャットダウンするまで、またはタスクマネージャーなどを使用して明示的に強制終了するまで、アプリはバックグラウンドで実行されます。
Dirk Vollmar、

26

アプリケーションタイプをWindowsアプリケーションに変更します。コードは引き続き実行されますが、作成しない限り、コンソールウィンドウや標準のウィンドウウィンドウはありません。


2
コンソールウィンドウが点滅して戻ります。ウィンドウなしでアプリケーションを実行し続けるにはどうすればよいですか?
SOFユーザー

あなたはそれが終了しないことを確認してください。これ以上の情報がなければ、言うべきことは他にあまりありません。プログラムは何をしますか?それはループで何かを実行しますか?
Lasse V. Karlsen、

1
アプリケーションの「出力タイプ」を「Windowsアプリケーション」に変更すると、うまくいきました。
hellowahab 2016年

12

とうとう代わりにConsole.Readline/key使えますnew ManualResetEvent(false).WaitOne()。これは私にはうまくいきます。


3

Windowsサービスアプリケーションを作成してみてください。UIなしでバックグラウンドで実行されます。


3
Windowsサービスは、キーが押されたイベントを取得することはできません
SOFユーザー

1
サービスはアプリケーションに応じて厳しく制限されます。WindowsVistaでは、サービスはセッション0に強制されているため、ポップアップメッセージの表示など、他のセッションでは何も実行できません。
Matt

1
@Mattは「他のセッションでは何も実行できません」とは完全に正しくありません。ログインしたユーザーのデスクトップに管理コマンドプロンプトを開くサービスのコードプロジェクトを次に示します。 codeproject.com/Articles/35773/...
Qodex

0

出力タイプをコンソールアプリケーションからWindowsアプリケーションに変更します。

代わりに、最後にをConsole.Readline/key使用new ManualResetEvent(false).WaitOne()してアプリを実行し続けることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.