✔ 내 컴퓨터에 설치된 프로그램 경로를 레지스트리 데이터를 확인하여 찾기
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가 같나요???
(다르다면... 뭔가 타이핑을 잘못 치신게 아닌지..)
감사합니다~
'Programming > C#' 카테고리의 다른 글
[Unity3D, C#] 프로그램 윈도우 창 최소화, 최대화, 맨앞으로 활성화 (4) | 2021.11.10 |
---|---|
[C#] Xml 로드 할때 많이 발생되는 에러 [해결법] (2) | 2021.11.09 |
[C#] 클래스 멤버 간 데이터 비교 - IEqualityComparer (4) | 2020.11.17 |
[C#] 클래스 라이브러리(.dll) 프로젝트에서 Winform 사용하기 (4) | 2020.06.11 |
[C#] 문자열에 포함된 공백 모두 삭제, 특정 문자 모두 삭제 (2) | 2020.04.28 |
댓글