Попробуйте, но вам могут потребоваться права администратора для реестра
public bool CheckFileInstalled(string pathProg, string nameProg)
{
bool pathExist = Directory.Exists(pathProg);
bool x86 = false;
bool x64 = false;
RegistryKey x86Key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall", true);
if(x86Key.GetValueNames().Contains(nameProg)) x86 = true;
RegistryKey x64Key = Registry.LocalMachine.OpenSubKey(@"Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall", true);
if(x64Key.GetValueNames().Contains(nameProg)) x64 = true;
return (pathExist && (x86 || x64));
}