problem with LaunchAppAndWait()
Posted 22 January 2004 - 17:38
I'm a beginner with InstallShield and I'm trying to create an installation setup. In my installation I need to launch several install setup.exe, but when I launch with LaunchAppAndWait() I get the error 1500 "Another install is running".
I use InstallShield developer 8.0 and I used doInstall() and I get other error.
I need your help
Thanks in advance.
Posted 22 January 2004 - 17:46
If you just ran an InstallShield setup, the engine takes a few seconds at the end of the installation to clean up. During this time Ikernel.exe (the engine file) is running in memory from a previous process; that is why you are not allowed to launch another setup. Waiting a few seconds and running the setup again should resolve this.
Hope this helps
Posted 23 January 2004 - 10:10
But I have some doubts, because in my case, I create a InstallShield setup that runs during all the process of my installation (copy files, create an ODBC link and launch severals installshield setups). Since the main setup I launch other installShield setups (like j2sdk1.4, Acrobat Reader, etc) but I don't understand well your answer, because in my case I think that lKernel.exe (the engine file) is running always, because is from the main InstallShield setup, in other words, my main InstallShield setup run in foreground, and when I'll launch the others installShield Setups, in this moment, the main installshield setup change a background execution and the other installshield setup change to foreground execution. There is installshield setups within the main.
How can I do this?
Need I put the execution of the setup.exe in a specific position (after or before) in the secuence? for example after InstallFinalize or something like this
How can I wait a few seconds? Are there any timer for control this?
I'm very grateful to you if you answer me, because I'm stuck.
Thank you in advance.
Posted 23 January 2004 - 11:19
To get a better idea of the whole process, download Process Explorer from http://www.sysinternals.com. IKernel.exe is not a child-proces of Setup.exe (is a child-process of the service RPC), so IKernel.exe can be in memory after setup.exe has exited. You have to wait for IKernel.exe to unload from memory before you can start another setup.exe.
Maybe it's better NOT to install all the apps from within an InstallShield executable, but by vbscript or bat/cmd-files (or vb/delphi). (With vbscript you can check whether IKernel.exe is still running or not.)
Another option is to get rid of the setup.exe's and to install the packages with msiexec, not with setup.exe. Find the knowledge base doc Q108166 at http://support.installshield.com.
Posted 23 January 2004 - 11:32
I'll follow your advices and I'll try to open other ways.
Thanks a lot.
Posted 23 January 2004 - 11:49
'sleep, or do something else
Dim colResults, objProcess, objWMI, strWQL
ProcessRunning = False
Set objWMI = GetObject("winmgmts:Root/CIMv2")
strWQL = "SELECT * FROM Win32_Process WHERE Name = '" & ProcessName & "'"
Set colResults = objWMI.ExecQuery(strWQL)
For Each objProcess In colResults
ProcessRunning = True