zoukankan      html  css  js  c++  java
  • c++ 调用外部程序exe-ShellExecuteEx

    此方法最实用的调用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;
    }
  • 相关阅读:
    rails时间问题
    stringify_keys 和symbolize_keys
    thritf
    Nginx负载均衡反向代理
    CentOS 7 yum 安装 Nginx
    CentOS 7安装与配置Tomcat8
    CentOS 7安装与配置JDK8
    系统数据字典模块设计
    mysql视图
    阿里云maven中央仓库
  • 原文地址:https://www.cnblogs.com/ike_li/p/4545720.html
Copyright © 2011-2022 走看看