在启动可执行文件后从 "returning" 停止 windows 命令提示符?
Stop windows command prompt from "returning" after an executable is started?
我正在开发一个应用程序,如果它们对用户没有用,它会将一些异常消息写入 Console
。因此,如果有人 运行 通过简单地双击可执行文件,他们将永远不会看到这些消息。
在 Visual Studio 中,这些消息显示在输出 window 中,但就我而言,我正在未安装 Visual Studio 的机器上测试我的应用程序,但我仍然想看看这些消息是否出现。
过去,我只是 运行 命令提示符下的可执行文件,它作为 window 在 Visual Studio 中的输出。虽然出于某种原因我的应用程序,当从命令提示符 运行 时,简单 "returns" 并且不显示任何消息。
例如我可能会这样启动它,它会立即 returns
D:\>MyApp.exe
D:\>
我不确定当我 运行 时是否应该使用特定的开关(我已经尝试 /K
但无济于事),或者我的应用程序是否有某些东西导致它到 return.
关于如何通过命令行 运行 它以便我可以看到消息的任何想法?
我的申请供参考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);
}
}
要允许您的程序输出到控制台,请将其构建为控制台应用程序。
在Visual Studio中,相关的链接器选项是/SUBSYSTEM:Console
;或者,在创建新项目时,选择 "console application" 模板,它将自动设置链接器选项。
这也意味着如果您从命令提示符 运行 程序,命令提示符将等待程序退出。此外,如果您双击该程序而不是从命令提示符 运行 将其打开,将自动创建一个控制台 window。
(无法让命令提示符等待程序,但无法阻止程序在双击时创建控制台 window。有关详细信息,请参阅 this question and its answers。)
我正在开发一个应用程序,如果它们对用户没有用,它会将一些异常消息写入 Console
。因此,如果有人 运行 通过简单地双击可执行文件,他们将永远不会看到这些消息。
在 Visual Studio 中,这些消息显示在输出 window 中,但就我而言,我正在未安装 Visual Studio 的机器上测试我的应用程序,但我仍然想看看这些消息是否出现。
过去,我只是 运行 命令提示符下的可执行文件,它作为 window 在 Visual Studio 中的输出。虽然出于某种原因我的应用程序,当从命令提示符 运行 时,简单 "returns" 并且不显示任何消息。
例如我可能会这样启动它,它会立即 returns
D:\>MyApp.exe
D:\>
我不确定当我 运行 时是否应该使用特定的开关(我已经尝试 /K
但无济于事),或者我的应用程序是否有某些东西导致它到 return.
关于如何通过命令行 运行 它以便我可以看到消息的任何想法?
我的申请供参考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);
}
}
要允许您的程序输出到控制台,请将其构建为控制台应用程序。
在Visual Studio中,相关的链接器选项是/SUBSYSTEM:Console
;或者,在创建新项目时,选择 "console application" 模板,它将自动设置链接器选项。
这也意味着如果您从命令提示符 运行 程序,命令提示符将等待程序退出。此外,如果您双击该程序而不是从命令提示符 运行 将其打开,将自动创建一个控制台 window。
(无法让命令提示符等待程序,但无法阻止程序在双击时创建控制台 window。有关详细信息,请参阅 this question and its answers。)