你的安装程序可以等vcredist.msi安装完了再安装自己的程序的

解决方案 »

  1.   

    vcredist.msi自己会判断是否已经安装了,这个不用你操心
      

  2.   

    vcredist.msi,难道不是VC运行时支持库中的包么?如果是,它自己会判断的
      

  3.   


    是的,它应该会自己判断, 因为我测试的时候,就是不断的安装vcredist.msi的时候,发现第一次安装之后,第二次安装的时间很短。还有一个问题就是我的安装程序在没有vc环境电脑里面去安装vcredist.msi, 因为这个安装需要时间,而我的安装程序可能已经安装完了,需要运行主程序, 但是vcredist.msi还正在安装中,这时候运行主程序会运行不了的,  就是这个逻辑上面怎么弄,麻烦给我讲讲------------是不是像楼上的说的那样---你的安装程序可以等vcredist.msi安装完了再安装自己的程序的 还是有其他的方法
      

  4.   

    可是我想问问我怎样判断这个vcredist.msi有没有安装完成,因为我的主程序是需要等这个vc组件安装完成之后才能运行的
      

  5.   

    我已经知道怎样知道安装完成了    Q: 如何启动一个程序,直到它运行结束?
    SHELLEXECUTEINFO ShExecInfo = {0};
    ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
    ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
    ShExecInfo.hwnd = NULL;
    ShExecInfo.lpVerb = NULL;
    ShExecInfo.lpFile = "c:\MyProgram.exe";
    ShExecInfo.lpParameters = "";
    ShExecInfo.lpDirectory = NULL;
    ShExecInfo.nShow = SW_SHOW;
    ShExecInfo.hInstApp = NULL;
    ShellExecuteEx(&ShExecInfo);
    WaitForSingleObject(ShExecInfo.hProcess,INFINITE);与大家共享下
      

  6.   

    SHELLEXECUTEINFO ShExecInfo = {0};
    ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
    ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
    ShExecInfo.hwnd = NULL;
    ShExecInfo.lpVerb = NULL;
    ShExecInfo.lpFile = "c:\MyProgram.exe";
    ShExecInfo.lpParameters = "";
    ShExecInfo.lpDirectory = NULL;
    ShExecInfo.nShow = SW_SHOW;
    ShExecInfo.hInstApp = NULL;
    ShellExecuteEx(&ShExecInfo);
    WaitForSingleObject(ShExecInfo.hProcess,INFINITE);这个是可行的