VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1507|回复: 5

CreateProcess不能成功创建CMD程序

[复制链接]
08_avatar_middle
最佳答案
0 
在线会员 发表于 2015-10-6 13:13:48 | 显示全部楼层 |阅读模式
SECURITY_ATTRIBUTES sa;
        HANDLE hRead = NULL,hWrite = NULL;
        sa.nLength = sizeof(SECURITY_ATTRIBUTES);
        sa.lpSecurityDescriptor = NULL;
        sa.bInheritHandle = FALSE;
        if (!CreatePipe(&hRead,&hWrite,&sa,0))
        {
                return FALSE;
        }
    STARTUPINFO si = {sizeof(STARTUPINFO)};
        PROCESS_INFORMATION pi = {0};  
        // GetStartupInfo(&si);
        si.dwFlags = STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES ;
        si.wShowWindow = SW_SHOWNORMAL;
        si.hStdInput = hRead;            //把创建进程的标准错误输出重定向到管道输入
    si.hStdOutput = hWrite;           //把创建进程的标准输出重定向到管道输入
        char SystemName[100] = {0};
        GetSystemDirectory(SystemName,100);
        strcat(SystemName,"\\cmd.exe");
        //关键步骤,CreateProcess函数参数意义请查阅MSDN
        if (!CreateProcess(SystemName,NULL,NULL,NULL,FALSE,NULL,NULL,NULL,&si,&pi))
        {
                MessageBox(NULL,"sss","sss",0);
                return 0;
        }
        return 0;




上一篇:像素值显示图片问题
下一篇:MFC icon 变灰
08_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2015-10-6 13:16:06 | 显示全部楼层
关键是 si.dwFlags = STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES ; 这一句,这个STARTF_USESTDHANDLEs这个标志出的问题,如果去掉这个标志可以成功创建并显示cmd,可一添加就不能创建程序,cmd一闪而过,大神求帮我
08_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2015-10-6 13:25:40 | 显示全部楼层
我懂了,因为没有 WaitForSingleObject
08_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2015-10-6 18:41:20 | 显示全部楼层
错了,不是因为没有 WaitForSingleObject,是继承属性的问题,必须都设置成继承
51_avatar_middle
最佳答案
82 
online_admins 发表于 2015-10-7 22:57:14 | 显示全部楼层
楼主解决了就好
80_avatar_middle
最佳答案
0 
在线会员 发表于 2016-6-6 09:26:43 | 显示全部楼层
学习下~~
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-30 01:13

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表