2012-11-06 139 views
2

我試圖在C#中構建的visual studio中打開控制檯應用程序。只要我打開它,它立即關閉。控制檯應用程序在Visual Studio中打開後立即關閉

我知道windows設置這是一個安全默認值(至少我認爲)。我該如何解決?

我知道我可以編譯它並創建一個快捷方式並修改目標,使其在應用程序位置之前具有命令提示符的位置。雖然創建這個的程序員已經將信息生成到visual studio的輸出中,但是我必須在那裏打開它。

它發生與大多數應用程序,而不只是在Visual Studio中,只是在這種情況下,我需要它在VS 2010中打開我使用Windows 7

回答

10

這是一個古老的問題,激發了幾個有趣的卡通:

enter image description here

讓我們來解決它。當您從桌面,Windows資源管理器或Visual Studio上的快捷方式啓動控制檯應用程序時,您想要執行的操作是提示用戶按任意鍵。但不是從運行自己的控制檯的命令處理器開始的。您可以通過一個小小的調整來確定流程是否爲控制檯窗口的唯一擁有者,如下所示:

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); 
} 
+0

你爲什麼要刪除編輯? –

+1

因爲這是做錯的方法。 –

+0

如果所有人都想要的是在VS運行結束時暫停的快捷方式。對於小型實用程序或測試代碼,與記住'Debugger.IsAttached'相比,pinvoke可能更麻煩。 –

3

嘗試主要的末尾添加Console.ReadKey();()方法。這是一種快速而骯髒的方法來阻止窗戶自動關閉。

2

您需要等待用戶輸入。使用Console.ReadLine(),Console.Read()Console.ReadKey()

5

您也可以通過按(Ctrl + F5)來運行應用程序。這將允許它以'Release'模式運行,並且默認情況下,您需要按'return'關閉窗口。

+1

這是問題要求正確的答案。 –

相關問題