mfc 执行命令
来源:互联网 发布:淘宝达人的网址 编辑:程序博客网 时间:2024/06/05 11:40
BOOL EI_bExcuteCMD(char *pcCmd)
{
CFile fp;
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
CString strData;
// 建立匿名管道
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead, &hWrite, &sa, 1024))
{
OutputDebugString("Error On CreatePipe()\n");
return FALSE;
}
// 建立进程,并继承管道输出
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
ZeroMemory( &pi, sizeof(pi) );
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
// si.hStdInput = GetStdHandle( STD_INPUT_HANDLE );
// si.hStdError = GetStdHandle( STD_ERROR_HANDLE );
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_SHOW;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
if (!CreateProcess(NULL, pcCmd,NULL,NULL,TRUE, CREATE_NO_WINDOW,NULL,NULL,&si,&pi))//CREATE_NEW_CONSOLE |
{
OutputDebugString("Error on CreateProcess()\n");
return FALSE;
}
//超时时间5秒
CString sTemp;
DWORD lpExitCode;
sTemp.Format("%s", pcCmd);
if (WaitForSingleObject(pi.hProcess, 5000) == WAIT_TIMEOUT)
{
//进程还在的话强制退出
GetExitCodeProcess (pi.hProcess, &lpExitCode);
if (lpExitCode == STILL_ACTIVE)
{
lpExitCode= TerminateProcess(pi.hProcess, 0);
}
return FALSE;
}
//进程还在的话强制退出
GetExitCodeProcess (pi.hProcess, &lpExitCode);
if (lpExitCode == STILL_ACTIVE)
{
lpExitCode= TerminateProcess(pi.hProcess, 0);
}
return TRUE;
}
{
CFile fp;
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
CString strData;
// 建立匿名管道
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead, &hWrite, &sa, 1024))
{
OutputDebugString("Error On CreatePipe()\n");
return FALSE;
}
// 建立进程,并继承管道输出
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
ZeroMemory( &pi, sizeof(pi) );
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
// si.hStdInput = GetStdHandle( STD_INPUT_HANDLE );
// si.hStdError = GetStdHandle( STD_ERROR_HANDLE );
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_SHOW;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
if (!CreateProcess(NULL, pcCmd,NULL,NULL,TRUE, CREATE_NO_WINDOW,NULL,NULL,&si,&pi))//CREATE_NEW_CONSOLE |
{
OutputDebugString("Error on CreateProcess()\n");
return FALSE;
}
//超时时间5秒
CString sTemp;
DWORD lpExitCode;
sTemp.Format("%s", pcCmd);
if (WaitForSingleObject(pi.hProcess, 5000) == WAIT_TIMEOUT)
{
//进程还在的话强制退出
GetExitCodeProcess (pi.hProcess, &lpExitCode);
if (lpExitCode == STILL_ACTIVE)
{
lpExitCode= TerminateProcess(pi.hProcess, 0);
}
return FALSE;
}
//进程还在的话强制退出
GetExitCodeProcess (pi.hProcess, &lpExitCode);
if (lpExitCode == STILL_ACTIVE)
{
lpExitCode= TerminateProcess(pi.hProcess, 0);
}
return TRUE;
}
0 0
- mfc 执行命令
- UNICODE的MFC程序执行系统命令方法
- MFC执行CMD命令并获得其返回信息源代码
- MFC 执行CMD命令 利用管道技术读取输出内容
- 执行命令
- 执行命令
- 【执行】robot执行命令
- MFC的执行步骤
- MFC程序执行顺序
- MFC应用程序执行流程
- MFC程序执行顺序
- MFC 程序执行流程
- mfc程序执行顺序
- 十三,MFC 执行exe
- MFC 执行过程
- MFC执行过程
- MFC执行过程详解
- MFC程序执行流程
- 图论小结
- c++简单整理
- 收集几个移动平台浏览器的User-Agent
- Mybatis极其(最)简(好)单(用)的一个分页插件
- 反反爬虫之见招拆招
- mfc 执行命令
- Twitter登录的集成
- linux下 ls -l 命令显示结果解释
- 一个算例 介绍 libmesh 的类
- 用 ps命令表示线程信息
- android 出现的问题
- GCD的深入理解
- 15. Zend 路由
- mysql实现自增序列