执行函数如下:
CString ExecuteCommandLine(CString strCmdLine)
{
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite; sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead,&hWrite,&sa,0)) {
MessageBox(_T("Error On CreatePipe()"));
return _T("");
} STARTUPINFO si;
PROCESS_INFORMATION pi; si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdInput=NULL;
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;
if (!CreateProcessW(NULL,strCmdLine.GetBuffer(),
NULL,NULL,TRUE,REALTIME_PRIORITY_CLASS,NULL,NULL,&si,&pi)) {
MessageBox(_T("Error on CreateProcess()"));
return _T("");
} CloseHandle(hWrite); char buffer[4096] = {0};
CString strBuffer;
DWORD bytesRead = 0;
do{
bytesRead = 0;
memset(buffer, 0, sizeof(buffer));
ReadFile(hRead,buffer,4096,&bytesRead,NULL);
strBuffer += buffer;
}while( bytesRead == 4096);
// Wait until child processes exit.
WaitForSingleObject( pi.hProcess, 0 ); // Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread ); return strBuffer;
}
CString ExecuteCommandLine(CString strCmdLine)
{
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite; sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead,&hWrite,&sa,0)) {
MessageBox(_T("Error On CreatePipe()"));
return _T("");
} STARTUPINFO si;
PROCESS_INFORMATION pi; si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdInput=NULL;
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;
if (!CreateProcessW(NULL,strCmdLine.GetBuffer(),
NULL,NULL,TRUE,REALTIME_PRIORITY_CLASS,NULL,NULL,&si,&pi)) {
MessageBox(_T("Error on CreateProcess()"));
return _T("");
} CloseHandle(hWrite); char buffer[4096] = {0};
CString strBuffer;
DWORD bytesRead = 0;
do{
bytesRead = 0;
memset(buffer, 0, sizeof(buffer));
ReadFile(hRead,buffer,4096,&bytesRead,NULL);
strBuffer += buffer;
}while( bytesRead == 4096);
// Wait until child processes exit.
WaitForSingleObject( pi.hProcess, 0 ); // Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread ); return strBuffer;
}
解决方案 »
- 帮忙看个触发器mysql
- 查询语句
- 存储过程比sql语句好在哪?
- 急问:虚拟主机中的MYSQL数据可否与本地客户端数据做同步?谢谢!
- 请问高手在mysql中如何新建用户
- phpmyadmin控制mysql里面的'字符集'怎么样选才是可以储存简体,繁体和英文?
- MySQL的where、order by、limit结合使用问题
- Cannot add or update a child row: a foreign key constraint fails (`analysis_da
- 请问InnoDB Read指的是什么?
- 网贷产品数据表设计
- mysql 查询两个字段(意义不同) 为同一表同一字段 如何处理
- SQL语句日期问题!!!!!!!!!!
最好去MFC版面问。