1PRivateSharedFunctionProgramExists(ByValpgNameAsString)AsBoolean2DimtempAsString=Nothing3DimtempTypeAsString=Nothing4DimdisplayNameAsObject=Nothing5DimuninstallStringAsObject=Nothing6DimreleaseTypeAsObject=Nothing7DimcurrKeyAsRegistryKey =Nothing8DimsoftNumAsInteger=09Dimpregkey = Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Uninstall")10Dimresult =False11Try12ForEachitemAsStringInpregkey.GetSubKeyNames()13currKey =pregkey.OpenSubKey(item)14displayName = currKey.GetValue("DisplayName")15uninstallString = currKey.GetValue("UninstallString")16releaseType = currKey.GetValue("ReleaseType")17DimisSecurityUpdate =False18IfreleaseTypeIsNotNothingThen19tempType =releaseType.ToString()20IftempType ="Security Update"OrElsetempType ="Update"Then21isSecurityUpdate =True22EndIf23EndIf24If(NotisSecurityUpdate)AndAlso_25(displayNameIsNotNothing)AndAlso_26(uninstallStringIsNotNothing)AndAlso27displayName = pgNameThen28result =True29ExitFor30EndIf31Nextitem32Catch33Finally34pregkey.Close()35EndTry36Returnresult37End Function