首先,我没有使用visual studio,我使用的是记事本和csc。我想要做的是创建像visual studio的Windows应用程序一样的exe,也就是说,当你双击exe时,根本不打开任何控制台窗口。我发现了这个:
[DllImport("kernel32"]
public static extern IntPtr GetConsoleWindow();
IntPtr window = GetConsoleWindow();
if(window != IntPtr.Zero) ShowWindow(window, 0);
和类似的代码片段有效,但控制台仍然显示为瞬间。我希望它根本不显示。
此外,使用Process类没有帮助,因为exe是独立的并且要手动双击,它不会从已经运行的程序启动。
我也知道使用vbs脚本启动打开exe的bat,以及其他解决方法,但它们并不适合我的需要。
如何将exe编译为仅在没有任何控制台窗口的情况下打开?它必须是可能的,因为visual studio的Windows应用程序可以做到这一点。为了澄清我甚至不想要一个表单,我只是希望程序在后台运行,我只是为了比较而引用Windows应用程序,因为它们没有显示控制台。
请不要给我任何愚蠢的答案,如“使用视觉工作室”或回答问题而不是回答。谢谢你的帮助!
答案 0 :(得分:0)
您可能希望使用非托管库kernel32.dll和FreeConsole函数。这是一个例子:
[DllImport("kernel32.dll")]
static extern bool FreeConsole();
static void Main(string[] args)
{
FreeConsole();
// Do other stuff
}
请告诉我这是否是您正在寻找的内容!
答案 1 :(得分:0)
你只能走一条路。
此方法将完全遮盖控制台窗口。