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
'Programming > C#' 카테고리의 다른 글
Serilog log levels (1) | 2024.11.17 |
---|---|
[C#] static, readonly 등 modifier 순서 강제하기 (.editorconfig) (0) | 2024.08.14 |
C# Coding Style (0) | 2024.07.05 |
[C#] 반복문에서 삼항연산자 vs Func 뭐가 좋을까? (0) | 2024.03.08 |
[C#] Linq SingleOrDefault() vs FirstOrDefault() (0) | 2024.02.17 |
댓글