【发布时间】:2014-01-24 13:28:38
【问题描述】:
从 Cmd 运行应用程序时,我对控制台与 Windows 应用程序有疑问,直接调用 exe。
如果应用程序编译为控制台应用程序(将其称为我的ConApp),当通过 cmd 运行应用程序时,提示等待应用程序完成运行后再继续。但是,如果应用程序已被编译为 Windows 应用程序(将其称为我的 WinApp),则通过 cmd 启动应用程序,提示将触发并忘记 WinApp,可以理解这是预期的行为。
要让 WinApp 停止 cmd 的触发和遗忘,必须在 cmd 中使用“start \wait WinApp.exe”之类的内容启动应用程序,这将导致 Cmd 提示等待 WinApp 停止运行,然后再继续。
我的问题是控制台应用程序如何通知 Cmd,或者 Cmd 如何知道它需要保持打开状态,而不是触发后忘记 ConApp?是否可以在我的 WinApp 中调用相同的行为,这样我就不必调用“start \wait”?
注意:
我尝试过使用 AllocConsole 和 AttachConsole,但是在我的 WinApp 中使用 AttachConsole(-1) 时,Cmd 仍然会触发并忘记 WinApp 但是 WinApp 似乎只是打开了一个新的控制台窗口。
【问题讨论】:
-
您是否对技术细节或如何将程序从即发即弃模式更改为等待模式感兴趣?
-
可执行文件是控制台模式应用还是本机Windows应用都记录在EXE文件的头部。 Cmd.exe 看着它知道该怎么做。这无助于您解决任何问题。
标签: c# cmd console-application windows-applications