본문 바로가기
Programming/C#

[C#] 어떤 프로그램이 설치되어 있는지 확인하기(windows 11)

by 째스터 2024. 8. 10.
728x90

Windows 11에서 c#에서 특정 프로그램이 설치되어 있는지 확인하는 방법은 다음과 같다.
예시 소스코드에서는 MongoDB의 설치여부를 확인한다.

Console.WriteLine(CheckInstalled("MongoDB"));

static bool CheckInstalled(string name)
{
    using var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall") ??
        Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall");

    if (key is null) return false;

    foreach (var subKey in key.GetSubKeyNames().Select(key.OpenSubKey))
    {
        var displayName = subKey?.GetValue("DisplayName") as string;
        if (displayName is not null && displayName.Contains(name, StringComparison.InvariantCultureIgnoreCase))
        {
            return true;
        }
    }

    return false;
}

 

해당 위치가 Windows에서 설치된 프로그램에 대한 정보를 표준화된 위지이기 때문이다.
직접 레지스트리 편집기에서 해당 경로를 따라가 보자.
레지스트리 키 중에서 DisplayName에 저장된 value를 찾아서 있다면 true를 리턴하는 방식을 사용한다.

728x90

댓글