码迷,mamicode.com
首页 > 编程语言 > 详细

c++ 调用外部程序exe-ShellExecuteEx

时间:2015-06-02 10:59:02      阅读:706      评论:0      收藏:0      [点我收藏+]

标签:

此方法最实用的调用exe.

#include <ShellAPI.h>

string file_path = s_run_dir+"\\ConsoleApplication1.exe";
    if (!myfile.IsFileExist(file_path))
    {
        return 1;
    }

    LPCWSTR lp_file_path = mystring.StringToLPCWSTR(file_path);

    SHELLEXECUTEINFO ShExecInfo;

    ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
    ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
    ShExecInfo.hwnd = NULL;
    ShExecInfo.lpVerb = NULL;
    ShExecInfo.lpFile = lp_file_path;
    ShExecInfo.lpParameters = __T("D:\\a.txt D:\\b.txt D:\\c.txt");//传出去的参数
    ShExecInfo.lpDirectory = NULL;
    ShExecInfo.nShow = SW_SHOW;
    ShExecInfo.hInstApp = NULL;

    BOOL b_ret=ShellExecuteEx(&ShExecInfo);
    if (b_ret)
    {
        //等待调用启动的exe关闭,此处要设置成ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
        WaitForSingleObject(ShExecInfo.hProcess, INFINITE);

    }
    else
    {
        return 2;
    }

 

传给控制台程序参数

#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{

    // 参数个数,第一个参数为可执行文件路径  
     int iParamCount = argc;
     cout << "参数个数:" << iParamCount << endl;
     for (int i = 0; i < iParamCount; i++)
     {
           cout << endl << "" << i + 1 << "个参数:";
           wprintf(argv[i]);
     }
    
     getchar();

    return 0;
}

 

c++ 调用外部程序exe-ShellExecuteEx

标签:

原文地址:http://www.cnblogs.com/ike_li/p/4545720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!