附件控制台的问题

时间:2011-08-16 02:07:31

标签: c++ winapi

我需要让一个Windows GUI应用程序可以在控制台中运行,所以我在使用命令行调用应用程序时将控制台附加到进程。但是,在应用程序退出后,除非按下ENTER键,否则不会显示带路径的控制台提示符。是否有任何方法可以直接显示带有路径的提示而不按Enter键?感谢。

3 个答案:

答案 0 :(得分:7)

简短回答:这是不可能的。

答案很长:嗯,如果你愿意稍微放松一下你的要求,那是有可能的。你基本上有三个选择:

  1. 你已经做了什么。您可以将GUI应用程序附加到控制台,但cmd.exe不会等待您的应用程序退出。
  2. 在GUI应用程序中创建GUI应用程序并打开控制台。控制台只会在您申请时使用。
  3. 或者您可以稍微重构您的应用程序/源代码并提供两个可执行文件,GUI一个直接启动GUI,另一个是控制台可执行文件。

答案 1 :(得分:1)

在C#中,我使用SendKeys.SendWait("{ENTER}");来做到这一点。我认为在C ++中,keybd_event函数做了类似的事情。

答案 2 :(得分:1)

与使用MayaBatch的Autodesk Maya一样,您可以构建一个小型控制台应用程序,它基本上使用CreateProcess运行GUI应用程序并等待WaitForSingleObject。

您必须在控制台中使用此应用程序的“批处理”版本。