How to check with C# where a program is installed

后端 未结 4 1694
一生所求
一生所求 2021-01-12 06:47

I need to check where a program is installed by program name (name that appears in Add or Remove Programs). What is the best way to that so that it\'d work fine for all lang

4条回答
  •  借酒劲吻你
    2021-01-12 07:22

    To add to Oliver's answer I have wrapped up this check inside a static method.

    public static bool IsProgramInstalled(string programDisplayName) {
    
        Console.WriteLine(string.Format("Checking install status of: {0}",  programDisplayName));
        foreach (var item in Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall").GetSubKeyNames()) {
    
            object programName = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + item).GetValue("DisplayName");
    
            Console.WriteLine(programName);
    
            if (string.Equals(programName, programDisplayName)) {
                Console.WriteLine("Install status: INSTALLED");
                return true;
            }
        }
        Console.WriteLine("Install status: NOT INSTALLED");
        return false;
    }
    

提交回复
热议问题