Ask a Question

Verify if a program is installed

simonaferrara
Contributor

Verify if a program is installed

 Hi all,

 

someone know if there could be a method to check if a program is installed?

 

During a test, I'm installing an msi, and I would like to verify if the program belongs to the list of the installed programs within the operating system (that is: the programs that I see within "Control Panel -> Programs and Features").

 

Thanks!

Simona

3 REPLIES 3
mattb
Staff

Re: Verify if a program is installed

Hi,

After the install we could run a process method (https://support.smartbear.com/testcomplete/docs/reference/test-objects/members/sys/process-method-sy... It simply searches for it among all processes that currently exist in the system.

So I would add this as a validation after the install step 

Best,
Matt

simonaferrara
Contributor

Re: Verify if a program is installed

Hi, 

 

anyone have got other ideas? 

 

I can check the processes related to the application (as @mattb explain) but this check is currently not enough, I would like to find a way to check if the application appears within the "Program and Feature" list.

 

Thanks

Simona

Raviavi
Occasional Contributor

Re: Verify if a program is installed

Hi Simona, 

 

This is also an option using powershell script, but check the feasibility from your end

 

****************** Test Complete Code***************************************

function CheckProgramInstalled()
{
var WSH = Sys["OleObject"]("WScript.Shell");
var objExec = WSH["Exec"]("powershell -file C:\\****\\PowerscriptName.ps1");
objExec ["StdIn"]["Close"]();
var strOutput = objExec ["StdOut"]["ReadAll"]();
Log["Message"](strOutput);
}

****************** Test Complete Code***************************************

 

in the above code power script(PS1 file - C:\\****\\PowerscriptName.ps1) is being used, you could create that file with below code using node pad and save as .ps1 extension or using powershell ise or VS CODE

 

$software = "PROGRAM  NAME THAT YOU ARE SEARCHING";
$installed = (Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where { $_.DisplayName -eq $software }) -ne $null

If(-Not $installed) {
Write-Host "'$software' is not installed";
} else {
Write-Host "'$software' is installed."
}

 

It works if machine is 64 bit

 

Else you can check using below in 2nd line of powershell script - I have not tried this

HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstal  in 2nd line of powershell script 

 

 

 

 

cancel
Showing results for 
Search instead for 
Did you mean: