본문 바로가기
Programming/C#

[C#, Unity3D] 레지스트리를 활용한 컴퓨터에 설치된 프로그램 확인 및 Path 가져오기 - Microsoft.Win32.Registry

by 타임박스 2021. 10. 2.
반응형


✔  내 컴퓨터에 설치된 프로그램 경로를 레지스트리 데이터를 확인하여 찾기

    C#, Unity : Get installed program check and path 



 

안녕하세요.

이번 포스트는 기존에 설치되어 있는 프로그램이 있는지 그리고 그 경로가 어디인지를 찾아보겠습니다.

프로그램을 개발하면서 프로그램이 어떤 특정 프로그램을 설치해야하는 경우가 있습니다.

Nodejs를 설치하려면 파이썬이 필요하듯이 말이죠.

그럼 내 프로그램에서 해당 프로그램이 설치되었는지 확인하고 설치가 안되었다면 설치페이지로 자동으로 링크가 간다면 편리하겠죠?

정말 간단합니다. 

※ 참고로 설치된 프로그램명을 모르신다면 아래쪽 레지스트리 경로 확인하는 부분부터 참고해서 보세요.

- 설치 경로 찾기 소스 - 

using Micorosoft.Win32;

//인스톨 된 프로그램 찾기 ( 프로그램 이름은 레지스트리에서 확인가능하다)
public static string GetInstalledProgramPath(string programName)
{
	string path = null;

	RegistryKey res = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths").OpenSubKey(programName);

	if(res != null)
	{
		path = (string)res.GetValue("Path");
	}

	return path;
}

//example
/*
    string excelPath = GetInstalledProgramPath("EXCEL.EXE");
    Debug.Log(excelPath);
*/

위 예제에서 excelPath 값의 결과와 설치된 경로가 맞는지 확인해보러 갑니다.

 

● 레지스트리에서 프로그램 이름 및 경로 확인

윈도우 키 -> regedit 검색 -> 레지스트리 편집기 열기

 

 

이제 경로를 찾아갑니다. 

소스코드에 보면 레지스트리 편집기와 비슷한 문자가 보입니다. 

Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths").OpenSubKey(programName);

빨간색 글자가 바로 경로입니다.

이제 경로를 찾아갑시다

마지막 excel.exe까지 찾아왔습니다. 

오른쪽에 Path가 보일겁니다. 파일탐색기를 열어 저 경로를 찾아가서 프로그램이 설치된 위치인지 확인합니다.

소스코드에서 로그 찍은 Path와 확인해본 Path가 같나요???

(다르다면... 뭔가 타이핑을 잘못 치신게 아닌지..)

 

감사합니다~

 

반응형

댓글