经常可以看到一个程序调用另一个程序,比如一些工具软件调用系统的cmd,calc等小工具是怎么实现的呢?

解决方案 »

  1.   

    方法应该有很多,例如:
    ShellExecute(NULL, "open", "C:\\TEST.EXE", "", NULL, SW_SHOWNORMAL);
    WinExec("C:\\TEST.EXE", SW_SHOWNORMAL);
      

  2.   

    §5 – ShellExecute()函数的使用(进行文件打开操作时,均应传入文件的完整路径)
    》》》
    (1) 打开指定网址的web页(比如在IpInstaller中右键打开设备的web页):
    ShellExecute(NULL, NULL, _T("http://172.22.104.8"), NULL, NULL, SW_SHOWNORMAL);(2) 启动指定的可执行文件(可不传参数,也可以传参数 – 以命令行的形式,具体参见DvrCfgAndPlayBack工具):
    TCHAR fullPath[MAX_PATH];
    TCHAR drive[_MAX_DRIVE];
    TCHAR dir[_MAX_DIR]; GetModuleFileName(NULL, fullPath, MAX_PATH);
    _tsplitpath_s(fullPath, drive,_MAX_DRIVE, dir,_MAX_DIR, NULL,0, NULL,0);
    CString strPath = CString(drive) + dir;
    strPath += _T("AccFileConverter.exe"); //获取可执行文件的完整路径 LPCTSTR Operaton = _T("open");
    ShellExecute(NULL, Operaton, strPath, NULL, NULL, SW_SHOWNORMAL);(3) 可以打开指定的文件(比如.txt, .doc, .pdf)(我们可以将软件的使用手册写好放在可执行文件的当前目录中,用户可以从主程序的菜单即可调出):
    TCHAR fullPath[MAX_PATH];
    TCHAR drive[_MAX_DRIVE];
    TCHAR dir[_MAX_DIR]; GetModuleFileName(NULL, fullPath, MAX_PATH);
    _tsplitpath_s(fullPath, drive,_MAX_DRIVE, dir,_MAX_DIR, NULL,0, NULL,0);
    CString strPath = CString(drive) + dir;
    strPath+=_T("Help001.chm"); CString cmd;
    ShellExecute(NULL, _T("open"), strPath, NULL, NULL, SW_SHOWNORMAL);(4) 可以打开指定的文件所在的目录,并选中该文件 (比如在下载程序,我们可以右键点击打开文件所在的文件夹):
    TCHAR fullPath[MAX_PATH];
    TCHAR drive[_MAX_DRIVE];
    TCHAR dir[_MAX_DIR]; GetModuleFileName(NULL, fullPath, MAX_PATH);
    _tsplitpath_s(fullPath, drive,_MAX_DRIVE, dir,_MAX_DIR, NULL,0, NULL,0);
    CString strPath = CString(drive) + dir;
    strPath += _T("20100722153027.vas");
    CString strParam;
    strParam.Format(_T("/n, /select, %s"), strPath); //传入参数,包含文件的完整路径 LPCTSTR Operaton = _T("open");
    ShellExecute(NULL, Operaton, _T("Explorer.exe"), strParam, NULL, SW_SHOWNORMAL);
      

  3.   

    ShellExecuteEx();
    WinExec();
    CreateProcess();
    连system()这个函数都是可以的。
      

  4.   

    非常感谢你们,我用ShellExcute解决问题了!按照顺序依次给你们分数!呵呵,谢谢!