哪位高手能指点一下,我想在程序中执行一个EXE文件,可以用WinExec,路径怎么获取呢?如果路径是确定的,那么换了另外一台电脑,别人的这个文件可能装在别的路径下,所以想请教一下,如何能让程序自己找到这个EXE文件的全路径 

解决方案 »

  1.   

    一般如果是有安装的exe,在注册表都会有安装路径。
    如果没有,就只能全盘搜索了。
      

  2.   

    看来我表达有误的,我想找到的EXE文件也是自己编写的
      

  3.   

    我再重新表达一下我的问题,我想在我编的程序中执行我自己编的另一个EXE文件,可以用WinExec,但EXE文件的路径怎么获取呢?如果取确定的路径,那么换了另外一台电脑,别人的这个文件可能装在别的路径下,所以想请教一下,如何能在我的程序中自己找到这个EXE文件的全路径  
      

  4.   

    既然是你自己的写的,你将两个ExE放在同一个目录下,然后找你父进程的exe,(如:A.exe启动b.exe)你获取到了A的路径,就找到B了啊!
      

  5.   

    把你要执行的那个exe放到一个相对路径下,相对于当前exe的路径下,执行的时候也是用相对路径去执行。比如放到和你当前exe同一目录下。
      

  6.   

    可以将两个EXE放在同一个目录,然后在你编的程序中得到程序的相对目录,然后加上要调用程序的名字
    CString strAppPath;
            //得到你编写的程序目录和文件名
    GetModuleFileName( NULL, strAppPath.GetBuffer(MAX_PATH), MAX_PATH );
    strAppPath.ReleaseBuffer();//释放appPath.GetBuffer(MAX_PAHT)申请的多余内存
    int iFind = strAppPath.ReverseFind( '\\' );
            //得到目录
    m_strAppPath = strAppPath.Left( iFind );
      

  7.   

    CString strPath;
    GetModuleFileName(NULL,strPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
        strPath.ReleaseBuffer (); 
        int nPos;
        nPos=strPath.ReverseFind ('\\');
        strPath=strPath.Left (nPos);
    拿分,不谢