Func _ProgInfo($Program, $Action = "Version")
Local $RegRoot, $RegKey, $ProgVer, $ProgName, $UninstallStrRead, $UninstallStr, $pNotInstall
$RegRoot = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
If $Action = "" Then $Action = "Version"
For $i = 1 To 999
$RegKey = RegEnumKey($RegRoot, $i)
If @error Then ExitLoop
$ProgName = RegRead($RegRoot & "\" & $RegKey, "DisplayName")
If $Program = $ProgName Then
ConsoleWrite("Find " & $Program & " OK")
ExitLoop
EndIf
Next
If $Program = $ProgName Then
Switch $Action
Case "Delete"
$UninstallStrRead = RegRead($RegRoot & "\" & $RegKey, "UninstallString")
$MsiExec = StringRegExp($UninstallStrRead, "(MsiExec.exe)(.*)")
If $MsiExec <> 0 Then
$UninstallStr = StringRegExpReplace($UninstallStrRead, "(.*)(/I)(.*)", "$1 /x $3 /passive")
ConsoleWrite(@ComSpec & " /c " & $UninstallStr)
RunWait(@ComSpec & " /c " & $UninstallStr, '', @SW_HIDE)
Else
ConsoleWrite(@ComSpec & " /c " & $UninstallStrRead)
RunWait(@ComSpec & ' /c "' & $UninstallStrRead & '"', '', @SW_HIDE)
EndIf
Case "Version"
$ProgVer = RegRead($RegRoot & "\" & $RegKey, "DisplayVersion")
ConsoleWrite($ProgName & " version: " & $ProgVer)
Return $ProgVer
EndSwitch
Else
$pNotInstall = "NO installed"
ConsoleWrite($Program & " " & $pNotInstall)
Return $pNotInstall
EndIf
EndFunc