Solved

Installshied extra

Posted on 2002-06-17
5
197 Views
Last Modified: 2013-11-14
hi All,
i created an installshield installation, at the end of the installation i want to run a new installation to inatall more files, i want it to run as a child process right before the main installation finished.

the user will go through the new install and then when it ends, he'll be able to close the miain one
i m using installshield 7.0 developer

thanks
shay
0
Comment
Question by:Shay050799
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
5 Comments
 
LVL 86

Expert Comment

by:jkr
ID: 7084087
Call the new Setup through your extension DLL & take care of the message processing, so the 1st installer doesn't appear 'frozen':

DWORD ExecuteAndWaitForCompletion   (   LPSTR   pszCmd)
{
    STARTUPINFO         si;
    PROCESS_INFORMATION pi;

    BOOL                bRes;

    DWORD               dwCode  =   0;

    ZeroMemory  (   &si,    sizeof  (   STARTUPINFO));

    si.cb           =   sizeof  (   STARTUPINFO);
    si.dwFlags      =   STARTF_USESHOWWINDOW;
    si.wShowWindow  =   SW_SHOWNORMAL;

    bRes    =   CreateProcess   (   NULL,
                                    pszCmd,
                                    NULL,
                                    NULL,
                                    TRUE,
                                    NORMAL_PRIORITY_CLASS,
                                    NULL,
                                    NULL,
                                    &si,
                                    &pi
                                );

    while   (   WAIT_OBJECT_0   !=  MsgWaitForMultipleObjects   (   1,
                                                                    &pi.hProcess,
                                                                    FALSE,
                                                                    INFINITE,
                                                                    QS_ALLINPUT
                                                                )
            )
            {
                while   (   PeekMessage (   &msg,   NULL,   0,  0,  PM_REMOVE))
                        {
                            DispatchMessage     (   &msg);
                        }
            }

    GetExitCodeProcess  (   pi.hProcess,    &dwCode);

    CloseHandle (   pi.hProcess);
    CloseHandle (   pi.hThread);

    return  (   dwCode);
}


0
 
LVL 7

Accepted Solution

by:
peterchen092700 earned 40 total points
ID: 7084177
Why not using the LaunchAppAndWait() IS Script function?
0
 
LVL 86

Expert Comment

by:jkr
ID: 7084782
Hm, I knew there was something about getting older :o)
0
 
LVL 11

Expert Comment

by:griessh
ID: 7262366
Dear Shay

I think you forgot this question. I will ask Community Support to close it unless you finalize it within 7 days. You can always request to keep this question open. But remember, experts can only help you if you provide feedback to their questions.
Unless there is objection or further activity,  I will suggest to accept

     "peterchen"

comment(s) as an answer.

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!
======
Werner
0
 
LVL 6

Expert Comment

by:Mindphaser
ID: 7332952
Force accepted

** Mindphaser - Community Support Moderator **
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Installations often have prerequisites, such as “Microsoft .Net framework is required for this product”. The usual implementation in MSI installations is system search for a particular registry setting representing the required prerequisite, followe…
Among others, I monitor the Windows Installer zone and Installer zone. I find that many of the questions could be answered much more quickly if a Windows Installer verbose log were submitted with the question.   However, I do not always have t…
The goal of the video will be to teach the user the difference and consequence of passing data by value vs passing data by reference in C++. An example of passing data by value as well as an example of passing data by reference will be be given. Bot…
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.

735 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question