Hi All,

I am converting the attached .vbs code into .kix and I am running into an issue. Everything seems to work perfectly fine except for one COM command.

This command in .VBS works fine:

oUIResource.ExecuteProgram sProgramID, sPackageID, TRUE

and in KIX throws up an error (Error:Unexpected Command):

$oUIResource.ExecuteProgram $sProgramID, $sPackageID, TRUE

I will include the test code of both below. Also...was wondering if anyone knew how to 'Shell' the COM command above. By 'Shell' I mean wait till the installation is finished and then continue the code and go onto the next application. Any help is greatly appreciated!!!



.VBS Code (works fine)
 Code:
On Error Resume Next

    Dim oUIResource 
    Dim oPrograms 
    Dim oProgram 

    Set oUIResource = CreateObject ("UIResource.UIResourceMgr")

    If oUIResource Is Nothing Then 
        WScript.echo "Could not create Resource Object - quitting"
    End If

    Set oPrograms = oUIResource.GetAvailableApplications

    If oPrograms Is Nothing Then
        WScript.echo "Failed to get programs object - quitting"
        Set oUIResource=Nothing
    End If

    WScript.echo "There are " & oPrograms.Count & " programs"


    For Each oProgram In oPrograms
        WScript.Echo "Program Name: " & oProgram.FullName
        WScript.Echo "  Package ID: " & oProgram.PackageId
        WScript.Echo "  Prog ID: " & oProgram.Id

        sPackageName = oProgram.FullName 
        sPackageID = oProgram.PackageId 
        sProgramID = oProgram.Id

 			  
	Set myProgram = oUIResource.GetProgram(sprogramId, spackageId)
	oldTime = myProgram.LastRunTime
	WScript.Echo oldTime
    
   oUIResource.ExecuteProgram sProgramID, sPackageID, TRUE
    Next 

.KIX Code

$oUIResource = CreateObject("UIResource.UIResourceMgr")

If $oUIResource = ""
	MessageBox("Error Creating the OUIResource", "Error Creating UI", 16)
	Quit
EndIf
	
$oPrograms = $oUIResource.GetAvailableApplications
	
If $oPrograms = "" 
  MessageBox("Failed to get programs object - quitting", "Error Creating Programs Object", 16)
	$oUIResource = Nothing
	Quit
EndIf
		
For Each $oProgram in $oPrograms
		
	$sPackageName = $oProgram.FullName 
	$sPackageID = $oProgram.PackageId 
	$sProgramID = $oProgram.Id
	
	? "Package name: " + $sPackageName
	? "Package ID: " + $sPackageID
	? "Program ID: " + $sProgramID
								  
			$myProgram = $oUIResource.GetProgram($oProgram.Id, $oProgram.PackageId)
			$oldTime = $myProgram.LastRunTime
	      ? "Last Run Time: " + $oldTime
				       
	$oUIResource.ExecuteProgram $sProgramID, $sPackageID, TRUE	
			
Next 

Quit



Thanks alot for all your help in advance!!


Edited by Mart (2010-09-21 10:19 AM)
Edit Reason: Please use code tags when posting code.