설치 / 사용기

윈 도 우 레지스트리 파일에서 환경변수 적용한 경로명 사용하기

2018.01.08 23:52

대추사랑 조회:693 추천:10

부제: 하나의 레지스트리 파일을 시스템드라이브가 다른 O/S에서 사용하기.

 

WinNTSetup3 사용하여 윈도우 설치할 때 '드라이브 문자 사전 할당' 부분을 체크하면 실제 드라이브명을 그대로 사용하여 각각의 운영체제를 설치할 수 있는 것을 알고 있을 것입니다.

 

예:
C: 윈도우 7 설치
D: 윈도우 10 설치


NetSpeedMonitor 프로그램을 설치한 뒤 설치한 폴더를 따로 백업하면 시스템 드라이브가 다른 O/S에서도 백업한 폴더를 복사하므로 바로 사용할 수 있습니다. (단 레지스트리 파일을 병합해야 합니다. 일종의 무설치 파일이 되는 것이지요. 따로 Windows\System32 폴더에 .dll 파일을 설치하지 않는 프로그램이면 설치된 폴더를 백업하는것으로 동작합니다. IDM도 마찬가지)

그런데 레지스트리 파일의 내용을 살펴보면...
.
.
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{47ADC6F3-E876-40BC-86BD-A398E80F5CA9}\InprocServer32]
@="C:\\Program Files\\NetSpeedMonitor\\nsm.dll"
"ThreadingModel"="Apartment"

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders]
"C:\\Program Files\\NetSpeedMonitor\\"=""
.
.
.

저렇게 드라이브명과 폴더명이 보입니다.
저 부분을 윈도우 환경변수로 대입하면 다음과 같이 나타낼 수 있을 것입니다.

 

원래:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{47ADC6F3-E876-40BC-86BD-A398E80F5CA9}\InprocServer32]
@="C:\\Program Files\\NetSpeedMonitor\\nsm.dll"

 

변경:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{47ADC6F3-E876-40BC-86BD-A398E80F5CA9}\InprocServer32]
@="%ProgramFiles%\\NetSpeedMonitor\\nsm.dll"


저렇게 환경변수를 대입하여 사용하면 시스템드라이브명이 C가 되던 D가 되던 하나의 레지스트리 파일로 사용할 수 있을 것입니다.

 

환경변수를 적용한 경로명을 사용하면 기다란 경로명도 아래와 같이 간단히 표시할 수 있습니다.
C:\Users\사용자계정명\AppData\Roaming\Microsoft ==> %AppData%Microsoft
또한 "사용자 계정명"이 다르더라도 말이지요.

 

그런데 경우에 따라서 환경변수로 경로명을 적으면 프로그램이 동작하지 않는 경우가 발생합니다.
위의 NetSpeedMonitor 와 8가젯의 자동실행 부분이 이와같은 경우입니다.

 

;★ 가젯 자동실행
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"SideBar"="%ProgramFiles%\\Windows Sidebar\\sidebar.exe /autoRun"

 

가젯 자동실행의 경우는 해당 키에서 SideBar 문자열을 만들고 값으로 %ProgramFiles%\\Windows Sidebar\\sidebar.exe /autoRun 입력하면 절대로 자동 실행이 되지 않습니다.
%ProgramFiles% 대신에 C:\\Program Files 입력하면 자동실행이 됩니다.
하지만 C, D 드라이브명을 사용한 두개의 레지스트리 파일을 만들어야 합니다.

 

예전에 제가 질답란에 시스템드라이브명을 알아볼 수 있는 배치파일의 작성법을 질문한 적도 있습니다.
바로 위의 경우와 같은 각각의 다른 시스템드라이브에서도 사용할 수 있는 레지스트리 파일을 만들려고 말입니다.

 

며칠 전에 우연히 생각이 떠올라 실험해본 결과 무조건 환경변수를 적용한 경로명을 사용할 수 있게 되었습니다.
해당 키에서 '문자열 값'을 만들지 말고 '확장 가능한 문자열 값'을 만들고 환경변수 적용한 경로명을 사용하면 됩니다.

 

그런데 레지스트리 편집기에서 '기본값'의 '값 데이터'를 '확장 가능한 문자열 값'으로 입력할 방법이 없습니다. 그러니 임의의 '확장 가능한 문자열 값'을 만들고 '값 데이터'를 환경변수를 적용한 경로명을 입력한 뒤에 해당 키를 내보내기 합니다.
메모장에서 내보낸 레지 파일을 열어서 임의의 '확장 가능한 문자열 값'의 데이터를 @= 이후에 붙여넣어면 됩니다.

 

이 작업의 결과가 다음과 같습니다.

 

NetSpeedMonitor 경우:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{47ADC6F3-E876-40BC-86BD-A398E80F5CA9}\InprocServer32]
@=hex(2):25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,00,\
  65,00,73,00,25,00,5c,00,4e,00,65,00,74,00,53,00,70,00,65,00,65,00,64,00,4d,\
  00,6f,00,6e,00,69,00,74,00,6f,00,72,00,5c,00,6e,00,73,00,6d,00,2e,00,64,00,\
  6c,00,6c,00,00,00
"ThreadingModel"="Apartment"

 

가젯 자동실행의 경우:
;★ 가젯 자동실행
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"SideBar"=hex(2):22,00,25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,\
  69,00,6c,00,65,00,73,00,25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,\
  00,20,00,53,00,69,00,64,00,65,00,62,00,61,00,72,00,5c,00,73,00,69,00,64,00,\
  65,00,62,00,61,00,72,00,2e,00,65,00,78,00,65,00,22,00,20,00,2f,00,61,00,75,\
  00,74,00,6f,00,52,00,75,00,6e,00,00,00

 

이렇게 '확장 가능한 문자열 값'을 사용하면 환경변수를 적용한 경로명을 사용할 수 있습니다.

 

알고 있는 분들도 많겠지만 환경변수를 쉽게 찾아보려면 실행창에서 CMD 명령이면 명령 프롬프트가 나타납니다.
여기서 set 입력하면 많은 정보를 보여줍니다.
보이는 정보의 = 문자열의 앞 부분이 환경변수 이름입니다.
그 변수 이름의 전후를 %로 둘러주면 환경변수를 적용한 경로명이 되겠습니다.
명령창에서 cd %programData% 명령을 주면 현재 위치가 시스템드라이브의 ProgramData 폴더에 위치할 것입니다.

 

다음은 위에 적은 프로그램을 사용하는 예제입니다. 2개의 프로그램과 레지스트리 파일이 포함되어 있습니다.

넷스피드모니터 x86, x64

8가젯 x86, x64

 

특히 8가젯은 모든 가젯이 있는것이 아니고 12개만 들어있습니다.

윈도 8 이상에서도 사용가능합니다.

포함된 파일의 경로중에 %LocalAppData%\ 폴더에 있는 것은 시스템드라이브의 Users\계정명\AppData\Local\ 폴더안에 복사하십시오.

해당 레지스트리 파일을 병합하면 가젯은 바탕화면 우클릭 메뉴에 가젯이 나타납니다.

넷스피드모니터는 레지 병합하고, 바탕화면 작업표시줄에 마우스 우클릭하고, 도구모음에 들어가서 NetSpeedMonitor 항목을 선택합니다.

이어서 자신의 인터넷 연결항목을 선택하면 됩니다. 그러면 작업표시줄에 인터넷 업,다운 속도가 실시간으로 나타납니다.

 

DESKTOP.jpg

 

 

이제 입문하시는 분들에게 조금이나마 도움이 되기를 바랍니다.

대중없이 적은 글을 보아주셔서 감사합니다.

 

번호 제목 글쓴이 조회 추천 등록일
[공지] 사용기/설치기 이용안내 gooddew - - -
9108 윈 도 우| 수정중 받지마새요 [85] V무등산V 1169 61 09-07
9107 기 타| Ghost + CmdPE 1개 숨김파티션 백업 복원으로 구성하여보았... [60] 왕초보 705 102 09-06
9106 기 타| Ghost 백업 - 취향에 맞게 선택해서(?) 사용하도록 하여 ... [97] 왕초보 1237 160 09-06
9105 기 타| IFW + CmdPE 1개 숨김파티션 백업 복원으로 구성하여보았습... [90] 왕초보 782 163 09-05
9104 기 타| IFW 백업 초보용, 백업버튼(X) 버전 사용기입니다. [84] 왕초보 914 141 09-05
9103 모 바 일| 아이폰 문자앱으로 여러장 사진 보내기 [3] asklee 1010 4 09-04
9102 기 타| IFW + CmdPE 2개 숨김파티션 백업 복원으로 구성하여보았... [141] 왕초보 1234 213 09-04
9101 기 타| Ghost 11.5.1 윈도우에서 백업이 되네요..헛고생했습니다. [34] 왕초보 2018 39 09-03
9100 기 타| [종료]단일 파일 몇 가지 업데이트 [26] DengJang 1386 45 09-03
9099 기 타| Ghost 백업 + 일반PE + CmdPE 1개로 구성을 하여 보았습니다 [95] 왕초보 860 139 09-03
9098 소프트웨어| 왕초보님의 Ghost 백업 사용기 및 CmdPE 1개로 [26] 지후빠 921 20 09-02
9097 기 타| TBWinPE.exe 활용한 PE 1회 부팅 프로그램 사용기입니다 [102] 왕초보 1038 150 09-02
9096 윈 도 우| Windows 11 (22622.590) 2022.09.02 베타 채널 [14] suk 908 18 09-02
9095 기 타| Ghost 백업 + 일반PE + CmdPE 로 구성을 하여 보았습니다 [133] 왕초보 1473 198 09-01
9094 기 타| 윈도우 디펜더 트레이쪽 메뉴 영어에서 한글로... [3] OOBERecord 707 5 09-01
9093 윈 도 우| Win11.25188.1000.TPM-PASS_33GB VHD 사용기 [7] jink 641 2 08-31
9092 기 타| WimLib 백업 + 일반PE + CmdPE 로 구성을 하여 보았습니다 [150] 왕초보 1160 209 08-31
9091 윈 도 우| Windows 10_Ent_22H2_19045.1947_3in1__x64 [228] V무등산V 3046 153 08-29
9090 기 타| PE 에서 단일 프로그램 연결 [19] 지니제스트 1224 31 08-29
9089 기 타| 지후빠님 바로가기 만들기 Cmd를 BR Simple 버전에 활용하... [21] 왕초보 942 26 08-29
XE1.11.6 Layout1.4.8