首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

各位好小弟有个保存显示内容的有关问题

2012-03-09 
各位好小弟有个保存显示内容的问题我调用了一个函数来解析一个html文件,然后屏幕输出了一堆html文件的语法

各位好小弟有个保存显示内容的问题
我调用了一个函数来解析一个html文件,然后屏幕输出了一堆html文件的语法错误信息
我如何获取显示的内容保存到一个文件

再者我将原程序release到一个exe文件中,如何将exe文件执行后显示的内容保存到一个文件中

注:我不是不知道如何写入文件,而是不知道如何获得屏幕显示内容
      就比如你在cmd下输入一个dir命令   你如何将dir显示的内容输入到一个文件中
谢谢大家帮忙

[解决办法]
管道。
[解决办法]
匿名管道
进程通信
//用于读信息管道端口句柄
HANDLE g_hrdS, g_hwtS;

//create the pipe
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
BOOL blIsOk = CreatePipe(&g_hrdS, &g_hwtS, &sa, 0);

//create the process
STARTUPINFO si = {0};
GetStartupInfo(&si);
si.cb = sizeof(STARTUPINFO);
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
si.hStdOutput = g_hwtS;
si.hStdError = g_hwtS;

PROCESS_INFORMATION pi;
blIsOk = CreateProcess(TEXT( "***.exe "), TEXT( "****** "), NULL,
NULL, TRUE, 0, NULL, NULL,
&si, &pi);
if(!blIsOk)
{
return 1;
}
//close read handle
CloseHandle(g_hwtS);

//detach the process
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);

while (TRUE)
{
char *buffer = new char[1024];
ZeroMemory(buffer, 1024);
DWORD dwReaded = 0;
blIsOk = ReadFile(g_hrdS, buffer, 1023, &dwReaded, NULL);
if ((blIsOk) && (dwReaded != 0))
{
CString tmp = buffer;
tmp.Replace(TEXT( "\n "), TEXT( "\r\n "));
strTxt += TEXT( "\r\n ");
strTxt += tmp;
}
//此时strTxt获得console窗口显示内容
//...
Sleep(1000);
}

CloseHandle(g_hrdS);

热点排行