可交互命令行控制其实非常重要,我们经常用来远程控制一些进程。
这是我工程中的一段代码分享下。
HANDLE m_stdRead;
HANDLE m_stdin ;
HANDLE m_hHeap ;
HANDLE m_stdout ;
HANDLE m_stderr ;
PROCESS_INFORMATION m_pi;
CString m_strTilte ;
void CToolAdb::SetStart()
//创建控制台
AllocConsole();
m_stdin = GetStdHandle( STD_INPUT_HANDLE );
m_stdout = GetStdHandle( STD_OUTPUT_HANDLE ) ;
m_stderr = GetStdHandle( STD_ERROR_HANDLE );
SetConsoleMode( m_stdin ,ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT | ENABLE_PROCESSED_INPUT );
SetConsoleTitle( m_strTilte );
STARTUPINFO si;
si.cb = sizeof( STARTUPINFO );
GetStartupInfo( &si );
si.hStdError = m_stderr;
si.hStdOutput = m_stdout ;
si.hStdInput = m_stdin ;
si.wShowWindow = SW_SHOW ;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
if ( !CreateProcess(NULL, "cmd.exe", NULL,NULL,TRUE,NULL,NULL,NULL,&si,&m_pi))
return ;
}