win32+QT 实现exe中执行返回的网页内容重定向到txt文件,根据需求读取里面内容
来源:互联网 发布:java纽约大亨 编辑:程序博客网 时间:2024/05/24 03:38
1. 创建共享重定向文件,通过CreateFile创建的内核对象返回在子进程中执行的网页结果
SECURITY_ATTRIBUTES sa = {sizeof(sa), NULL, TRUE};
SECURITY_ATTRIBUTES* psa = NULL;
DWORD dwShareMode = FILE_SHARE_READ | FILE_SHARE_WRITE;
OSVERSIONINFO osVersion = {0};
osVersion.dwOSVersionInfoSize = sizeof(osVersion);
if (GetVersionEx(&osVersion))
{
if (osVersion.dwPlatformId == VER_PLATFORM_WIN32_NT)
{
psa = &sa;
dwShareMode |= FILE_SHARE_DELETE;
}
}
//根据版本设置共享模式和安全属性
HANDLE hConsoleRedirect = CreateFile(
szFileDir, // szFileDir 重定向输出的文件路径
GENERIC_WRITE,
dwShareMode,
psa,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
WCHAR order[1024];
swprintf(order, L"curl -d \"name44_submit=submit\" http://admin:888888@192.168.0.206/cgi-bin/vgaic.cgi --connect-timeout 2 --retry-max-time 2 --max-time 5");
// 将curl命令行执行的网页内容返回
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
//使用标准柄和显示窗口
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
si.hStdOutput = hConsoleRedirect;//将文件作为标准输出句柄
si.wShowWindow = SW_HIDE; //隐藏控制台窗口
ZeroMemory(&pi, sizeof(pi));
unsigned int k1 = GetTickCount();
// Start the child process.
if( !CreateProcess(NULL, // No module name (use command line).
order, // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
TRUE, // Set handle inheritance to FALSE.
NULL, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi) // Pointer to PROCESS_INFORMATION structure.
)
{
printf( "CreateProcess failed\n");
}
else
{
WaitForSingleObject(pi.hProcess, INFINITE);
// Close process and thread handles.
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
CloseHandle(hConsoleRedirect);
2. // 创建文件,读取重定向内容
int nLineNum= 2;
// 读文件进行初始化预览
strDir = QCoreApplication::applicationDirPath();
strDir+="/encStatus.txt";
QFile encFile(strDir);
QString strContents;
if( encFile.exists())
{
if( encFile.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream txtOutStream(&encFile);
QTextCodec *codec=QTextCodec::codecForName("UTF-8");
txtOutStream.setCodec(codec);
while( !txtOutStream.atEnd())
{
QString strNum;
strNum.setNum(nLineNum);
//strContents+=strNum;//
//strContents+=": ";//
strContents+=txtOutStream.readLine();
strContents+="\n";
//nLineNum++;//
}
}
}
encFile.close();
- win32+QT 实现exe中执行返回的网页内容重定向到txt文件,根据需求读取里面内容
- qt 读取txt文件内容并保存到数组中
- Java读取文件txt里面的内容
- java读取excel、txt 文件内容,传到、显示到另一个页面的文本框里面。
- matlab读取txt文件里面的内容并绘图
- Linux命令执行的屏幕输出内容重定向到日志文件
- 读取txt文件的内容
- 如何将文本框里面的内容保存到txt文件中
- c语言实现读取txt文件内容到结构体数组中
- java读取txt文件内容,存放到list的方法
- 读取txt文件内容
- 读取txt文件内容
- 读取txt文件内容
- 【示例】Hibernate中读取txt的文件内容并插入到数据库
- java实现读取txt文件中的内容
- 在sql server2005中读取txt文件的内容
- c# 读取txt文件中特定内容后的文字
- 读取Access数据库中txt文件的内容
- POJ 3687 Labeling Balls(拓扑排序,逆序)
- 解决checkbox的attr(checked)一直为undefined问题
- JLINK(SEGGER)灯不亮 USB不识别固件修复、clone修改
- .nav ul .mall a:hover 是什么意思
- 一个lwip资料的帖子
- win32+QT 实现exe中执行返回的网页内容重定向到txt文件,根据需求读取里面内容
- STL之map详解
- Windows环境下安装wdl文件
- 编程不过是文字游戏
- leetcode刷题,总结,记录,备忘 101
- (4.1.2.6)Android 判断app是否在前台还是在后台运行
- Java序列化
- bzoj2594水管局长数据加强版题解
- 三行代码实现div内元素垂直居中