簡體   English   中英

如何抑制運行 C# Winforms 應用程序時彈出的黑色 Shell?

[英]How Can I Suppress the Black Shell that Pops Up When I Run my C# Winforms Application?

當我通過單擊 .exe 文件運行我的 C# 應用程序(在 VS 中編譯,發布版本)時,我得到一個黑色的 shell 以及我的 GUI。 我不確定為什么會出現這個黑色的 shell,因為它沒有出現在我的任何其他 GUI 應用程序中。 怎樣才能抑制黑色shell? 在編譯之前我是否不小心點擊了我不應該擁有的東西?

正如您在下面看到的,我的 GUI 應用程序和黑色的 shell(在應用程序后面)。

在此處輸入圖像描述

以下是我執行應用程序的目錄結構:

在此處輸入圖像描述

如果項目1的“輸出類型”不小心從“Windows 應用程序”更改為“控制台應用程序”,您會得到非常類似的症狀。

假設您開始使用 Windows 應用程序模板,您的主線程仍將是 STA,並且沒有任何東西可以阻止控制台應用程序運行 windows 消息循環並顯示 UI(因為模板將設置)。 但是你總是得到一個控制台 window 連接到控制台應用程序。

如果發生這種情況,您只需將 Output 類型改回 Windows 應用程序即可。


1項目屬性,應用程序選項卡。

默認情況下,Winforms 應用程序不顯示控制台,這是您需要主動調用的。 這通常是通過調用本機AllocConsole function 來完成的:

https://www.pinvoke.net/default.aspx/kernel32.allocconsole

我會搜索代碼庫,看看是否在任何地方都調用了AllocConsole

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM