컴퓨터에 설치된 프로그램 목록을 확인하려면 C#에서 Registry 클래스를 사용하여 레지스트리의 Uninstall 키에서 설치된 프로그램 정보를 가져올 수 있습니다. 이 코드는 HKEY_LOCAL_MACHINE과 HKEY_CURRENT_USER에서 설치된 프로그램 목록을 검색합니다.
using System;
using System.Collections.Generic;
using Microsoft.Win32;
class Program
{
static void Main()
{
foreach (var program in GetInstalledPrograms())
{
Console.WriteLine($"Name: {program.Name}, Version: {program.Version}");
}
}
public static List<ProgramInfo> GetInstalledPrograms()
{
var programs = new List<ProgramInfo>();
// 레지스트리 경로
string[] registryKeys = new string[]
{
@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall",
@"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
};
foreach (string registryKey in registryKeys)
{
// HKEY_LOCAL_MACHINE에서 설치된 프로그램 검색
GetProgramsFromRegistry(Registry.LocalMachine, registryKey, programs);
// HKEY_CURRENT_USER에서 설치된 프로그램 검색
GetProgramsFromRegistry(Registry.CurrentUser, registryKey, programs);
}
return programs;
}
private static void GetProgramsFromRegistry(RegistryKey baseKey, string subKey, List<ProgramInfo> programs)
{
using (RegistryKey key = baseKey.OpenSubKey(subKey))
{
if (key == null) return;
foreach (string subkeyName in key.GetSubKeyNames())
{
using (RegistryKey programKey = key.OpenSubKey(subkeyName))
{
if (programKey == null) continue;
string name = programKey.GetValue("DisplayName") as string;
string version = programKey.GetValue("DisplayVersion") as string;
if (!string.IsNullOrEmpty(name))
{
programs.Add(new ProgramInfo { Name = name, Version = version });
}
}
}
}
}
}
public class ProgramInfo
{
public string Name { get; set; }
public string Version { get; set; }
}
- GetInstalledPrograms 메서드는 HKEY_LOCAL_MACHINE과 HKEY_CURRENT_USER에 있는 설치된 프로그램 목록을 가져옵니다.
- GetProgramsFromRegistry 메서드는 지정된 레지스트리 키에서 프로그램 정보를 추출합니다.
- 프로그램 정보는 DisplayName과 DisplayVersion 속성을 통해 표시됩니다.
'C#' 카테고리의 다른 글
[C#]OpenFileDialog 활용하기 (0) | 2024.09.12 |
---|---|
[C#]C# Dictionary <TKey,TValue> 클래스 배열 데이터 사용법 (0) | 2024.04.16 |
[C#]C#코드를 이용하여 운영체제와 컴퓨터 정보 확인 (1) | 2024.02.24 |