繁体   English   中英

打印输出到cmd.exe后如何显示cmd提示符?

[英]How to display cmd prompt after printing output to cmd.exe?

我有一个从cmd.exe执行的winmain应用程序并打印输出到它。 我使用AttachConsole(ATTACH_PARENT_PROCESS) cmd.exe。 执行应用程序并将输出打印到cmd.exe命令行提示符不显示,看起来应用程序正在运行(当它已经关闭时)。 在关闭我的应用程序之前,我使用FreeConsole()释放控制台。

#include <iostream>
#include <fstream>
#include <windows.h>

int wWinMain
(
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPWSTR lpCmdLine,
    int nCmdShow
) 
    {
    AttachConsole(ATTACH_PARENT_PROCESS);

    std::wofstream console_out("CONOUT$");
    std::wcout.rdbuf(console_out.rdbuf());

    std::wcout << L"\nSome Output" << std::endl;

    FreeConsole();

    return 0;
    }

目前的结果: 在此输入图像描述

我的目标: 在此输入图像描述

如何在myapp.exe打印输出并关闭后出现提示C:New folder>

如果问题尚未得到解答(经过这么长时间),则需要通过发送(或者,最好是发布)相应的WM_KEYDOWN消息来模拟实际按下控制台窗口中的“Enter”键。控制台窗口,即

std::wcout << L"\\nSome Output" << std::endl;

在调用FreeConsole()之前,插入以下内容:

HWND hWndCon_ = ::GetConsoleWindow();
 if( hWndCon_ ) {
    ::PostMessage( hWndCon_, WM_KEYDOWN, VK_RETURN, 0 );
 }

或者干脆

::PostMessage( ::GetConsoleWindow(), WM_KEYDOWN, VK_RETURN, 0 );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM