vc获取本程序文件路径,并打开本文件夹另一个EXE

如题,C或C++编。功能就是打开这个程序自动获取本程序路径并打开本程序路径中的另一个exe!求大神帮助!... 如题,C或C++编。功能就是 打开这个程序 自动获取本程序路径 并打开 本程序路径中的另一个exe!

求大神帮助!
展开
 我来答
百度网友e096309
推荐于2016-07-18 · TA获得超过1326个赞
知道小有建树答主
回答量:501
采纳率:96%
帮助的人:407万
展开全部
#include <iostream>
#include <windows.h> // 这个必须要有 
#include <string> // 字符串处理函数 

using namespace std;

int main() {
    char szFileName[256] = ""; // 待会存完整路径 
    string strAnotherExe = "pipe.exe"; // 要执行的另外一个exe的名称 
    
    // 获得程序的运行路径,包含本程序名 
    GetModuleFileNameA(NULL, szFileName, 256);
    string strFileName = szFileName; // 用string处理比较方便
    
    // 删掉本程序名,只保留路径
    size_t slashIndex = strFileName.rfind('\\');
    strFileName.erase(slashIndex+1);
    
    // 拼接要启动的程序的完整文件名
    strFileName += strAnotherExe;
    cout<<"Another exe path : "<<strFileName<<endl;
    
    // 在当前程序中启动外部程序,输出会进入本程序
    //system(strFileName.c_str()); 

    // 在新的窗口中打开外部程序
    strFileName = "start "+strFileName;
    system(strFileName.c_str());
    
    return 0;
}


主要思路是GetModuleFileNameA获得程序运行时的绝对路径,包含程序名。

因此只要删掉程序名,然后拼接上另外的一个程序名就可以了。

用system("程序名")可以启动一个子进程,然后主进程卡在system处,等子进程结束,主进程才继续往下走。

用system("start 程序名")可以在新窗口中打开进程,不等子进程结束,主进程就继续往下走。


PS:如果编译器提示没有system函数,请包含stdlib.h头文件。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式