반응형
*C# 레지스트리를 이용한 설치된 닷넷프레임워크 버전 리스트 조회 예제...
전체 소스 코드
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
namespace CSharp_InstallFrameworkList
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
listView1.Items.Clear();
using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
{
int iCount=0;
string strNET="";
//하위 레지스트리 검색
foreach(string strRegName in rk.GetSubKeyNames())
{
ListViewItem lvi = new ListViewItem();
//문자열이 v로 시작 하면...
if(strRegName .StartsWith("v"))
{
//하위 레지스트리 열기...
using (RegistryKey versionKey = rk.OpenSubKey(strRegName))
{
// Get the .NET Framework version value.
string strVersion = (string)versionKey.GetValue("Version", "");
//strVersion 이 null 이거나 빈값이면...
if (string.IsNullOrEmpty(strVersion))
{
//하위 레지스트리 검색...
foreach (string strSubKey in versionKey.GetSubKeyNames())
{
//하위 레지스트리 열기...
using (RegistryKey rkSub = versionKey.OpenSubKey(strSubKey))
{
//하위 레지스트리에 Version 값 얻어오기...
string strVer = (string)rkSub.GetValue("Version", "");
strNET = strVer;
}
}
}
else
{
strNET = strVersion;
}
}
//Listview Display
lvi.Text = (iCount +1) .ToString();
lvi.SubItems.Add(strNET);
listView1.Items.Add(lvi);
iCount +=1;
}//if
}//foreach
}//using
}//button1_Click
}
}
설치된 닷넷 프레임워크 버전들 위치는 아래와 같습니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP
레지스트리 에디터 열기
윈도우 시작 -> 실행 -> regiedit 입력
아래의 그림은 레지스트리 에디터를 열고 위치를 직접 찾아가 본 모습입니다.
NDP 안에 여러개의 v 로 시작 되면서 닷넷프레임워크 버전들이 존재 하고 있는 모습을 볼 수 있습니다.
*예제 결과
https://kdsoft-zeros.tistory.com/173
반응형
'C# Programming' 카테고리의 다른 글
[C#] 파일 비교 (File Compare) (0) | 2020.03.30 |
---|---|
[C#] DateTimeFormat - 전역 설정 (0) | 2020.03.25 |
[C#] [API] 제어판 기본 프린터(Default Printer) 변경 (0) | 2020.03.19 |
[C#] [WMI] 실시간 메모리 사용량 체크 (Memory Check) - Progressbar (0) | 2020.03.17 |
[C#] 제어판 프린터(Printer) 목록 불러오기 (0) | 2020.03.13 |