There's not a great way to do that, unfortunately. Win32_Product should include most things installed via Windows Installer, but the GUI queries a LOT of different places beyond Win32_Product, mostly from some kind of esoteric registry locations. Typically, if I'm looking to check on an application that isn't in Win32_Product, I'll scan for some known attribute of it, like a specific filename, or a registry key I know it creates.
It is not recommended to use Win32_Product. When you query this class, the way the provider works is that it actually performs a Windows Installer “reconfiguration” on every MSI package on the system as its performing the query. LINK
PowerShell/WMI: An alternative to using Win32_Product. This looks at the 32 and 64 bit Uninstaller versions in the registry.