在可执行文件启动后从“返回”停止Windows命令提示符?

时间:2015-10-07 18:22:02

标签: c# command-line windows-7

我正在开发一个应用程序,如果它们对用户没用,会将一些异常消息写入Console。因此,如果有人通过双击它来运行可执行文件,他们将永远不会看到这些消息。

在Visual Studio中,这些消息显示在输出窗口中,但在我的情况下,我在不安装Visual Studio的计算机上测试我的应用程序,但我仍然想看看是否出现这些消息。

在过去,我只是从命令提示符运行可执行文件,它在Visual Studio中充当输出窗口。虽然出于某种原因我的应用程序,从命令提示符运行时,简单的“返回”并且不显示任何消息。

例如,我可能会这样开始,然后立即返回

D:\>MyApp.exe

D:\>

我不确定是否有一个特定的开关我应该使用(我试过/K无效)当我运行它时,或者我的应用程序有什么东西导致它返回。

关于如何通过命令行运行它的任何想法,以便我可以看到消息?

此处参考的是我的申请Program.cs

static class Program
{
    static Mutex mutex = new Mutex(true, "{12345678-1234-1234-1234-123456789012}");

    [STAThread]
    static void Main()
    {
        if (mutex.WaitOne(TimeSpan.Zero, true))
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            SplashScreen.ShowSplashScreen();
            Application.Run(MainForm.Instance);

            mutex.ReleaseMutex();
        }
        else
            NativeMethods.PostMessage((IntPtr)NativeMethods.HWND_BROADCAST, NativeMethods.WM_JTTMAINWINDOW, IntPtr.Zero, IntPtr.Zero);
    }
}

1 个答案:

答案 0 :(得分:1)

要允许程序输出到控制台,请将其构建为控制台应用程序。

在Visual Studio中,相关链接器选项为/SUBSYSTEM:Console;或者,在创建新项目时,选择“控制台应用程序”模板,该模板将自动设置链接器选项。

这也意味着如果从命令提示符运行程序,命令提示符将等待程序退出。此外,如果双击程序而不是从命令提示符运行它,将自动创建一个控制台窗口。

(无法使命令提示符等待程序,但如果双击则阻止程序创建控制台窗口。有关详细信息,请参阅this question and its answers。)