首页 > 系统相关 >VC++_读取SHELL命令结果

VC++_读取SHELL命令结果

时间:2022-11-08 11:07:43浏览次数:87  
标签:MessageBox SHELL 读取 buffer C++ si sa NULL hWrite


void CFfmpeg_divide_videoDlg::OnButtonBeginDivide() 
{
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead,&hWrite,&sa,0)) {
MessageBox("Error On CreatePipe()");
return;
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
if (!CreateProcess(NULL,"D:\\ffmpeg.exe "
,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) {
MessageBox("Error on CreateProcess()");
return;
}
CloseHandle(hWrite);
char buffer[4096] = {0};
DWORD bytesRead;
while (true) {
if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL)
break;
//m_Edit1 += buffer;
UpdateData(false);
Sleep(200);
}
MessageBox(buffer);
}


参考资料:

​​VC中利用匿名管道技术取得DOS或者命令行以及外部程序的输出​​

​在VC中使用Windows管道技术编程​​ 








标签:MessageBox,SHELL,读取,buffer,C++,si,sa,NULL,hWrite
From: https://blog.51cto.com/u_13316945/5832259

相关文章

  • linux服务器上使用find查杀webshell木马方法
    linux服务器上使用find查杀webshell木马方法本文转自:http://ju.outofmemory.cn/entry/256317只要从事互联网web开发的,都会碰上web站点被入侵的情况。这里我把查杀的一......
  • VC++_文件选择器
    CStringstrFile=_T("");CFileDialogdlgFile(TRUE,NULL,NULL,OFN_HIDEREADONLY,_T("DescribeFiles(*.apk)|*.apk|AllFiles(*.*)|*.*||"),NULL);if......
  • VC++_截取字符串
    CStringstr=_T("Duration:00:04:12.27,");intstart=str.Find("Duration:")+strlen("Duration:");intend=str.Find(",",start);CStringtime=str.Mid(st......
  • vc++读写配置文件
    voidcheckConfig(){char*AppName="TS37";char*ConfigFile="./config.ini";char*ItemName="StationNum";char*defValue="0";constintbufSize=10......
  • windows c++ 使用锁来控制线程访问
    CRITICAL_SECTIONcs;//全局变量InitializeCriticalSection(&cs);//初始化锁EnterCriticalSection(&cs);//获得锁//dosomethingLeaveCriticalSection(&cs);......
  • vc++ 将文件大小格式化
    都是些简单的代码,用的时候方便些。staticCStringgetFormatSize(floatsize){CStringstr;if(size<1024)str.Format("%fK",size/1024);elseif(size<1048576......
  • C++ 测代码运行时间的方法
    clock()函数(较为常用)在头文件time.h/ctime里面提供了一个函数clock()。函数返回的是从程序开始运行到调用clock函数时所打的点数,即clocktick(时钟打点),有一个常量CL......
  • Python 读取图片的位置写入txt
    importossaveBasePath=r'E:\Mine_personnel'#存放txt文件的地址jpgfilepath=r'E:\Mine_personnel\images\val'#jpg图片的地址ftest=open(os.path.join(s......
  • C++对象模型和this指针
    4.3C++对象模型和this指针this指针的本质是一个指针常量,和引用一样,不能够修改指向,但是可以修改值4.3.1成员变量和成员函数分开存储在C++中,类内的成员变量和成员函数分......
  • Mac中npm run * 没有读取权限的解决办法
    答案:sudochmod-R777目录名称我的mac可能是更新系统了,当我从gitee里克隆下一个项目后,凑巧这个项目自带node_modules依赖包,于是我直接启动项目。命令行控制......