Executing files from MSI

Hi guys,

This is my first experience working this in depth with MSIs and below is the problem that I'm running into. I'm not finding much resolution for the error message 1721, so I'm hopeing someone here can help..

I am trying make the MSI launch Internet explorer browser on the users screen and display at statuspage.html that I have created and is hosted on my server.  I have added a type 51 CA to set a property value, then a type 50 in my MSI to call iexplore.exe and lauch a status page(Html) on that's hosted on my server via internet explorer on the users screen after the installation is complete.

I have read many pages about this and never seem to see any clear resolutions or there is very limited information about it.  Using the CAs I have added, I am able to successfully launch notepad.exe or cmd.exe etc..  basically any Exe thats listed in the c:\windows directory.  I am not able to launch Iexplore.exe from it's parent directory "C:\program files\Internet Explorer\iexplore.exe.  I get error 1721 which from what I can tell is an error with the command I'm using.  Here is the excerpt from the XML.

      <td>"[ProgramFilesFolder]Internet Explorer\IEXPLORE.exe"</td>
      <td>IExplore.exe http:\\statuspage.html</td>

I also have these 2 CAs listed as the 2 last tasks in the installExecuteSequence Just before finalizeinstallation so they are properly sequenced.

I have tried adding the internet Explorer directory in the system environment variables and have tried directing the MSI to the Internet explorer directory.  both unsuccessfully.  

I did notice however, If I copy Iexplorer,exe to the C:\windows directory, I am able to launch he browser with the specific page(statuspage.html).

How is the c:\Windows folder and the %Programfiles%\Internet Explorer\Iexplore.exe directories treated differently by the MSI or by windows?

What Am I missing here?  Also, how am I supposed to set the CAs to run in Deferred mode in XML formatting?

Who is Participating?

Improve company productivity with a Business Account.Sign Up

Vadim RappConnect With a Mentor Commented:
> How is the c:\Windows folder and the %Programfiles%\Internet Explorer\Iexplore.exe directories treated differently by the MSI or by windows?

c:\windows is usually part of the system Path, so any program there can be called by name. Program Files is not.

You can refer to environment variables using information from the article "Formatted" from Installer SDK. In this case, [%ProgramFiles] will work.

However, all this is probably what you don't want to do. One reason is that Internet Explorer may be not user's default browser. Then there also may be differences on 64-bit systems. It's better to invoke the URL directly, as if it was run from Start/Run, and let the system handle it. To do this, you can put custom action type 38, "run vbscript from embedded code", with the code like

CreateObject("WScript.Shell").run "http://www.experts-exchange.com"

That will do it.

Another thing you probably don't want to do is put this in the execute script. Execute script is supposed to run already without user interaction. Also, the user can deploy the package with switch /q, expecting it to be "quiet", and he won't be happy if your custom action still pops up. The right way to do it is to create the above custom action outside of any sequence at all, but instead specify it as one of the events linked to the button "Finish" on Exit Dialog, complete with some conditions (was it installation, uninstallation, or maintenance, etc.)

krstilesAuthor Commented:
Thank you very much.  I was looking at using shell script, but never thought to use VB imbedded.. leaning everyday!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.