4

C# でビルドされたビジュアル スタジオでコンソール アプリケーションを開こうとしています。開いたらすぐに閉じます。

Windowsがこれを安全なデフォルトに設定していることは知っています(少なくとも私は思います)。これを修正するにはどうすればよいですか?

コンパイルしてショートカットを作成し、ターゲットを変更して、アプリケーションの場所の前にコマンドプロンプトの場所を配置できることを知っています。これを作成したプログラマーは、Visual Studio の出力に情報を生成しているため、そこでのみ開くことが不可欠です。

Visual Studioだけでなく、ほとんどのアプリケーションで発生します。この場合、VS 2010で開く必要があります.Windows 7を使用しています.

4

5 に答える 5

18

これは古代の問題であり、いくつかの面白い漫画に影響を与えました。

ここに画像の説明を入力してください

修正しましょう。デスクトップ、Windowsエクスプローラー、またはVisual Studioのショートカットからコンソールアプリを起動したときに、ユーザーにAnyキーを押すように求めるメッセージが表示されます。ただし、独自のコンソールを実行しているコマンドプロセッサから起動した場合はそうではありません。あなたは少しのピンボークでそうすることができます、あなたはプロセスがこのようにコンソールウィンドウの唯一の所有者であるかどうかを知ることができます:

using System;

class Program {
    static void Main(string[] args) {
        Console.WriteLine("Working on it...");
        //...
        Console.WriteLine("Done");
        PressAnyKey();
    }

    private static void PressAnyKey() {
        if (GetConsoleProcessList(new int[2], 2) <= 1) {
            Console.Write("Press any key to continue");
            Console.ReadKey();
        }
    }

    [System.Runtime.InteropServices.DllImport("kernel32.dll")]
    private static extern int GetConsoleProcessList(int[] buffer, int size);
}
于 2012-11-06T17:40:13.430 に答える
9

(Ctrl + F5) を押してアプリケーションを実行することもできます。これにより、「リリース」モードで実行できるようになります。デフォルトでは、ウィンドウを閉じるには「return」を押す必要があります。

于 2012-11-06T17:11:43.273 に答える
2

ユーザーの入力を待つ必要があります。Console.ReadLine()Console.Read()、または のいずれかを使用しますConsole.ReadKey()

于 2012-11-06T17:04:47.777 に答える
2

Console.ReadKey();Main() メソッドの最後に追加してみてください。これは、ウィンドウが自動的に閉じないようにする手っ取り早い汚い方法です。

于 2012-11-06T17:03:47.943 に答える