Bạn có thể làm đảo ngược và thiết lập các ứng dụng loại đầu ra: Windows Application. Sau đó, thêm mã này vào đầu ứng dụng.
[DllImport("kernel32.dll", EntryPoint = "GetStdHandle", SetLastError = true, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern IntPtr GetStdHandle(int nStdHandle);
[DllImport("kernel32.dll", EntryPoint = "AllocConsole", SetLastError = true, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern int AllocConsole();
private const int STD_OUTPUT_HANDLE = -11;
private const int MY_CODE_PAGE = 437;
private static bool showConsole = true; //Or false if you don't want to see the console
static void Main(string[] args)
{
if (showConsole)
{
AllocConsole();
IntPtr stdHandle = GetStdHandle(STD_OUTPUT_HANDLE);
Microsoft.Win32.SafeHandles.SafeFileHandle safeFileHandle = new Microsoft.Win32.SafeHandles.SafeFileHandle(stdHandle, true);
FileStream fileStream = new FileStream(safeFileHandle, FileAccess.Write);
System.Text.Encoding encoding = System.Text.Encoding.GetEncoding(MY_CODE_PAGE);
StreamWriter standardOutput = new StreamWriter(fileStream, encoding);
standardOutput.AutoFlush = true;
Console.SetOut(standardOutput);
}
//Your application code
}
Mã này sẽ hiển thị Console nếu showConsole
là true
Nguồn
2015-11-04 08:00:28
Cửa sổ vẫn xuất hiện trong giây lát lúc đầu. Tôi đoán không có cách nào xung quanh điều này, trừ khi loại ứng dụng được thay đổi? –
Nó sẽ là tốt đẹp nếu có một cách xung quanh đó. Bằng cách đó tôi có thể hiển thị giao diện điều khiển khi tôi đang ở chế độ gỡ lỗi, nhưng chỉ cần chạy chương trình của tôi và thoát (không có cửa sổ) khi tôi đang ở chế độ chạy bình thường. – Vaccano
@Vaccano: Có thể làm cho ứng dụng của bạn trở thành ứng dụng bảng điều khiển trong chế độ Gỡ lỗi chỉ bằng cách chỉnh sửa tệp 'csproj' theo cách thủ công. Visual Studio không có GUI để làm điều này, nhưng nó sẽ tôn trọng cài đặt nếu bạn chỉnh sửa tệp 'csproj' chính xác. – Timwi