PC에 설치된 특정 프로그램의 경로를 알아내는 방법.
그냥 단축아이콘 더블클릭 하면 되는거 아니야?! 할 수 있지만,
굳이 이걸 코드로 만드는 이유는 사무자동화와 관련이 있다.
Version 1. 특정 프로그램의 경로 반환받기
https://pastebin.com/ifNfk0hG 이 링크를 참고해서 응용했다.
(제목: Get path using registry)
윈도우 레지스트리에 직접 접근하는 방법을 사용한다.
따라서 _winreg 모듈을 꼭 import해줘야 함.
import _winreg as winreg
handle = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,
r"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe")
'''
[OpenKey]
해당 키를 열어 핸들 객체를 반환한다. 첫 번째 인자는 key, 두 번째 인자는 subkey.
핸들 객체는 pyHKEY 이름이 붙는데, HKEY 객체 자체를 감싸는 역할.
걍 이걸 호텔 방의 열쇠처럼 들고다닌다고 보면 됨.
이 값은 매번 바뀜.
'''
values = winreg.QueryInfoKey(handle)[1]
'''
[QueryInfoKey]
해당 키 정보를 튜플로 반환한다.
반환 결과: (0, 1, 엄청큰 정수)
Index 0: 해당 키의 서브키 개수
Index 1: 해당 키가 가진 값의 수를 제공
Index 2: 키가 마지막 수정된 때를 1601년 1월 1일 이후로, 100ns 단위로 제공
즉 Index 1 만큼 for문을 돌려서 값들을 뽑아낼 수 있다.
'''
for item in range(values):
print(winreg.EnumValue(handle, item))
위 코드에서 알 수 있듯이
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\
아래에 들어가면 PC에 설치된 프로그램의 설치 경로들을 확인할 수 있다.
결과
(”, ‘C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe’, 1)
(‘Path’, ‘C:\\Program Files\\Google\\Chrome\\Application’, 1)
튜플로 반환되기 때문에 두 번째 값을 불러와서 쓰면 된다.