Solved

# I need a VBscript to run an msi after clicking on an ok button.

Posted on 2009-05-08
Medium Priority
781 Views
I need a VBscript to run an msi after clicking on an ok button.  I need our users to see a message that will inform them to close a program before they click an ok button and install runs.  I have the msi working but I am just learning VB scripting.  Thanks.
0
Question by:automaton64
• 2
• 2

LVL 13

Expert Comment

ID: 24336722
See below

option explicit
on error resume next
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")

0

LVL 13

Expert Comment

ID: 24336740
to run the MSi you can use the below;

WshShell.Run "c:\windows\system32\msiexec /i ""program.msi"" /qn"
0

Author Comment

ID: 24338865
This is great.  Thank you. However, when I am testing it out with my msi which uses a transform file nothing seems to happen after the message window.  Here is what I am trying.
option explicit
on error resume next
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:\ln85\msiexec /i ""Lotus Notes 8.5.msi"" TRANSFORMS=""Lotus Notes 8.5.mst"""

0

LVL 12

Accepted Solution

zoofan earned 1000 total points
ID: 24341494

Edit line 8 to the name of the app to close
Edit line 9 to the full command line for the msi install

save as filename.vbs

run it.

zf
Option Explicit
Dim WshShell
Dim Intresult
Dim strAppName
Dim strCommand

strAppName = "TheApptoClose" ' edit thename of the app you want the user to close.
strCommand = "msiexec.exe /i \\server\share\NameOf.msi" 'edit to the command line to execute the msi.

Intresult = MsgBox("Please close " & strAppName & " before installing this application.",vbOKCancel,"MSI installation")

If Intresult = vbOK Then
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run strCommand,1,True
Else
MsgBox "The installation has been cancelled",vbOKOnly,"MSI Installation"
End If
WScript.Quit(0)

0

Author Closing Comment

ID: 31579478
Yes.  This is just what I need. Thank you.
0

## Featured Post

Question has a verified solution.

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

Introduction During my participation as a VBScript contributor at Experts Exchange, one of the most common questions I come across is this: "I have a script that runs against only one computer. How can I make it run against a list of computers in …
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…
Loops Section Overview
With just a little bit of  SQL and VBA, many doors open to cool things like synchronize a list box to display data relevant to other information on a form.  If you have never written code or looked at an SQL statement before, no problem! ...  give i…
###### Suggested Courses
Course of the Month14 days, 12 hours left to enroll