Jump to content

Recommended Posts

Posted

Hi all,

 

Ok im making a little GUI to allow easy installation of smart notebook via a VB form. This is going to be used as an autorun on a CD so i need to get the path that the exe is running from (the CD drive letter) then execute the MSI for smart notebook with a few switches.

 

This is what i have so far.

 

Imports System.Diagnostics.Process

Public Class Form1

   Private Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click
       MsgBox("Not here yet")
   End Sub

   Private Sub btnSmart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSmart.Click
       Process.Start("SmartTools.msi /Passive NOTEBOOK_ONLY=1")
   End Sub

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       Dim AppPath As String
       AppPath = Application.StartupPath
       lblAppPath.Text = AppPath
   End Sub
End Class

 

as you can see i have got the path that the exe is running from but i dont know how to integrate it with the process.start command.

 

Any ideas?

 

Cheers

 

Mike

Posted

Give the code below a try. You didn't mention what vesion of VB you're using - the code below works on 2005, .Net Framework v2.

 

It's probably better to call msiexec.exe directly and then pass the msi file as a parameter. You can specify both a filename and parameters in the process.start method

 

You can get the full path to the MSI by using & to concatenate the application.startuppath and the MSI filename. You'll need to wrap the whole string in " " ( chr(34) ) in case there's any spaces in the path.

 

However, you might still have a couple of problems. Firstly, you will need to ensure that the .Net framework is installed on every machine you're going to run the CD on.

 

Also, I've not tested running it direct from CD, but you may have problems with the default .Net Code Access Security Policy preventing the EXE file from running from the CD Drive. The default policy allows .Net EXEs to run from C: drive but not from network drives for example. I'm not sure about CDROM drives. It can be changed but it's something you'd have to do on each machine before running the CD.

 

You'd probably be better off with a batch file or a VBScript.

 

 

Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

       Dim myPath As String
       Dim myMSI As String

       myPath = Application.StartupPath & "\"
       myMSI = Chr(34) & myPath & "Smarttools.msi" & Chr(34) & " /Passive NOTEBOOK_ONLY=1"

       Process.Start("c:\windows\system32\msiexec.exe", " /i " & myMSI)

   End Sub
End Class

Posted

Thanks i will test this later tonight.

 

You would think it would allow exe to be run from CD as most games/apps have a little GUI then you click an install button and the msi is triggered.

 

I will report back with the results later.

 

Mike

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...