czjmaster
czjmaster
采纳率75%
2017-10-22 15:44

关于CreateProcess()函数的使用

8
已采纳

初学,不知道该函数能否执行非C盘的某个应用程序?假设D:\Tencent\QQGame.exe
这样的 能否执行?可以的话请将具体代码实现并加以注释。谢谢图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • zhangli00 csulizhang 4年前
    STARTUPINFO si;//程序的启动信息(清零)
    PROCESS_INFORMATION pi;
    memset(&si, 0, sizeof(STARTUPINFO));
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_SHOW;
    si.cb = sizeof(STARTUPINFO);//设定启动信息结构大小
    
    BOOL ok = ::CreateProcess(
        L"D:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe",//启动程序路径名称(可以为空,在下面一个参数命令行直接指定完整路径)
        NULL,//注意路径的\要带转移字符"\"
        NULL,//使用默认进程安全属性
        NULL,//使用默认线程安全属性
        FALSE,//句柄不继承
        NORMAL_PRIORITY_CLASS,//使用正常优先级
        NULL,//使用父进程的环境变量
        NULL,//指定工作目录
        &si,//子进程主窗口如何显示
        &pi);//用于存放新进程的返回信息
    //这样在创建成功这后我们就可以从pinfo中找到它的:进程句柄,线程句柄,进程ID,线程ID
    system("pause");
    
    测试过能用的,我电脑上没有QQGAME,开启微信,可以
    
    点赞 2 评论 复制链接分享

相关推荐