想运行一个msi文件进行自动安装,但是要知道msi安装结束,希望运行的msi安装结束后返回一个消息到本程序! 请问高手,有什么方法可以做到这点?? 注:msi文件安装完后,本程序还要处理其他事情,所以要知道msi安装结束!

解决方案 »

  1.   

    void main( VOID )
    {
        STARTUPINFO si;
        PROCESS_INFORMATION pi;    ZeroMemory( &si, sizeof(si) );
        si.cb = sizeof(si);
        ZeroMemory( &pi, sizeof(pi) );    // Start the child process. 
        if( !CreateProcess( NULL, // No module name (use command line). 
            "MyChildProcess", // Command line. 
            NULL,             // Process handle not inheritable. 
            NULL,             // Thread handle not inheritable. 
            FALSE,            // Set handle inheritance to FALSE. 
            0,                // No creation flags. 
            NULL,             // Use parent's environment block. 
            NULL,             // Use parent's starting directory. 
            &si,              // Pointer to STARTUPINFO structure.
            &pi )             // Pointer to PROCESS_INFORMATION structure.
        ) 
        {
            ErrorExit( "CreateProcess failed." );
        }    // Wait until child process exits.
        WaitForSingleObject( pi.hProcess, INFINITE );    // Close process and thread handles. 
        CloseHandle( pi.hProcess );
        CloseHandle( pi.hThread );
    }
      

  2.   

    To install a product   1. Run a product through its installation or uninstallation sequence by calling the MsiInstallProduct function.
       2. Specify the installation level by calling the MsiConfigureProduct function.      You can use the parameters of the MsiConfigureProduct function to set the installation state (for example, installed locally; installed to run from the source, etc.) and level, such as the range of product features to be included.