강좌 / 팁

윈 도 우 Win7 -우클릭 메뉴 (모음&자작)

2011.05.29 16:34

eunnano 조회:13491

기존에 자료실에 올렸던 자료는 삭제했습니다. 레지스트리 경로와 명령줄이 변경된 것이 많으니 삭제후 사용하세요.

 

1. TakeOwnerShip.reg (AllFilesystemObjects, Shift)

설명을 위해 잘 알려진 이 자료 부터 소개합니다. 소유권을 가져와서 모든 권한을 부여하는 레지입니다.

 

HKEY_CLASSES_ROOT\*\shell\runas

(기본값)=Take OwnerShip

HKEY_CLASS_ROOT\*\shell\runas\command

(기본값)=cmd.exe /c takeown /f "%1" && icacls "%1" /grant Administrator:F

 

HKEY_CLASSES_ROOT\Directory\shell\runas

(기본값)=Take OwnerShip

HKEY_CLASS_ROOT\Directory\shell\runas\command

(기본값)=cmd.exe /c takeown /f "%1" /r /d y && icacls "%1" /grant Adninistrator:F /t

 

*\shell 의 경로로 등록하면 * (와일드카드)가 '모든 파일들'을 의미하기 때문에 확장자에 관계없이 모든 파일에서 이 우클릭 메뉴를 사용할 수 있습니다.

Directory\shell 의 경로로 등록하면 Directory 가 '파일 폴더들'을  의미하기 때문에 '파일 폴더'에서 이 우클릭 메뉴를 사용할 수 있습니다.

이렇게 하면 모든 파일과 디렉토리에서 이 우클릭 메뉴를 사용할 수 있어야 하는데 실제로는 적용되지 않는 경우가 있습니다.

이유는 .exe 를 비롯한 몇몇 확장자와, 내 컴퓨터를 뜻하는 {20D04FE0-3AEA-1069-A2D8-08002B30309D} 외의 몇몇 디렉토리에는 이미 runas 키가 등록되어 있기 때문입니다. 그 중에 소유권을 얻어야할 필요가 있는 .exe 파일에 대하여 추가로 등록해 줍니다.

 

HKEY_CLASSES_ROOT\exefile\shell\runas2\command

(기본값)=cmd.exe /c takeown /f "%1" && icacls "%1" /grant Administrator:F

 

exefile 은 .exe 파일에 대한 Program ID 입니다.

참고: 명령창에서 ASSOC 를 치면  시스템에 등록된 파일 확장자에 대한 ProgID 를 보여 줍니다.

 

HKEY_CLASSES_ROOT\.exe

(기본값)=exefile

 

어떤 파일 확장자의 기본값에 ProgID 가 등록되지 않은 경우라면 .확장자\shell 의 경로로 등록해도 되지만 그렇지 않으면 ProgID\shell 의 경로로 등록해야 작동이 됩니다.

키 이름이 runas 로 되어 있으면 윈도우는 관리자 권한으로 해당 명령을 실행시켜 줍니다. .exe 파일의 우클릭 메뉴의 '관리자 권한으로 실행' 이 runas 키를 사용합니다. 때문에 exefile\shell\runas2 키를 사용했는데 이 runas2 키는 할 수 없이 이름만 유사하게 사용한 것이지 관리자 권한으로 실행되지는 않습니다.

 

위에 *, Directory 에 적용되는 두가지 레지를 제가 다음과 같이 바꿔 봤습니다.

 

HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\runas

Extended=""

HasLUAShield=""

NoWorkingDirectory=""

MUIVerb=@%SystemRoot%\System32\RSHX32.DLL,-35

 

HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\runas\command

(기본값)=cmd.exe /c takeown /f "%1" /r /d y>nul 2>&1 &if not errorlevel 1 (icacls "%1" /grant *S-1-5-32-544:F /t) else (takeown /f "%1" && icacls "%1" /grant *S-1-5-32-544:F)

 

AllFilesystemObjects 은 모든 파일과 모든 폴더를 의미합니다. *와 ,Directory 를 포함하는 경로이기 때문에 위의 두가지에 적용시킨것과 마찬가지로 작동됩니다. (참고로, HKEY_CLASSES_ROOT\Folder 는 모든 폴더를 의미합니다.) 다만 takeown 과 icacls 명령이 파일과 디렉토리에 적용되는 명령이 다르기 때문에 if ~명령1 else 명령2 로 해결했습니다. 레지스트리에 등록할 수 있는  명령은 한 줄로 된 명령만 등록할 수 있습니다. '응용프로그램 매개변수 옵션' 이런 형식입니다. 그런데 cmd.exe 는 & 기호를 사용하여 여러 명령을 한 줄로 붙여서 사용할 수 있는 기능이 있습니다. 제한 사항은 명령이 아닌 레이블이나 괄호를 사용한 다중 명령을 사용할 수 없다는 점입니다. 저는 주로 echo 명령으로 %temp% 폴더에 배치파일을 만들어서 실행시키는 방법을 사용했습니다. 또 하나의 제한 사항은 값 데이타 크기에 제한 사항이 있습니다. 대략 4KB 전후가 한계입니다. 가끔가다 2KB 전후가 한계인 경우도 있습니다. 4KB 면 글자수로 대략 2000자 내에서 사용할 수 있습니다.

Extended 값이 추가되면  Shift 키를 누른채 우클릭해야만 나타납니다. Extended 를  사용한 레지에서는 (Shift) 라고 표시했습니다.

HasLUAShield 값이 추가되면 UAC의 방패모양 아이콘이 표시됩니다. 아이콘이 표시되는 것 외에는 다른 의미는 없습니다. 제가 dism.exe, pnputil.exe, Imagex.exe, bcdedit.exe 등 관리자 권한으로 실행되어야 하는 곳에는 부득이하게 runas 키를 사용한 곳이 있는데  HasLUAShield 값을 추가해 놓았습니다.

NoWorkingDirectory 는 관련된 설명을 마땅히 찾지 못했습니다. 순정 상태의 레지스트리에 사용되어 있는 곳은 '여기서 명령창 열기'에 사용되어 있습니다.

MUIVerb 값은 MUI 호환 문자열 정의에 사용됩니다. 값 데이타가 @%SystemRoot%\System32\RSHX32.DLL,-35 인데 RSHX32.DLL.mui 의 stringID 35번의 문자열을 사용한다는 뜻입니다.  영문 윈도우에서는 'Take OwenerShip' 이라 표시되고 한글 윈도우에서는 '소유권 가져오기'라고 표시됩니다. 해당 윈도우의 en-US ,ko-KR 폴더에서 RSHX32.DLL.mui 을 7zip 으로 열여보시면 string.txt 파일이 있는데 이 파일을 열어서 확인해 보시면 알 수 있습니다. (ko-KR 폴더에서 추출한 string.txt 는 notepad.exe 로 열어보면 글자가 깨져 보입니다. notepad++ 을 사용해 보세요>)

 

2. 7zGetMuiStringTxt.reg (.mui)

.mui 파일 안의 string.txt 를 확인해 보기 위해서 우클릭 메뉴로 만들어 봤습니다. System32 폴더에 있는 en-US ,ko-KR 폴더에는 천개가 넘는 .mui 파일이 있습니다. 해당 디렉토리에 있는 모든 .mui 파일의 압축을 %temp% 폴더에 풀어서 string.txt 를 가져오고 나머지는 삭제시킵니다. 7zip 이 Program Files 폴더에 설치되어 있어야만 사용할 수 있습니다.

 

3. FindString.reg (Directory\Background, Shift)

위에서 압축을 풀어서 가져온 string.txt 파일을 사용하기 위해서 문자열을 검색할 수 있도록 만들었습니다. 제가 아는 한에서 문자열을 검색할 수 있는 자체 유틸로 Find.exe 와 Findstr.exe 가 있는데 Findstr.exe 는 string.txt 에서 검색을 전혀 못하고 Find.exe는 en-US에 들어 있는 mui 파일의 string.txt 중에서 어떤 파일만 부분적으로 검색이 되고 ko-KR은 전혀 검색을 안됩니다. 아마 유니코드로된 문서파일은 제대로 검색을 못하는 것 같습니다. Win7 자체 유틸 중에 파일을 비교할 수 있는 Fc.exe 파일이 있는데 비교결과 출력을 아스키 형식으로 출력하는 것 같습니다. 그래서 빈 파일을 만들어 위 string.txt 와 비교하고 그 출력을 받아서 Find 명령으로 검색하도록 했습니다. [U]nicode ,or [A]scii? 의 명령프롬프트에서 u 를 클릭하면 Fc.exe를 사용하고 a 를 클릭하면 Find.exe 만 사용하는 것입니다.

 

4. Compare.reg (*, Shift)

위에서 말한 Fc.exe 를 이용해 파일을 비교하는 것입니다. 첫번째 파일 클릭에 파일 경로 정보가 %temp% 폴더에 저장되고 두번째 파일 클릭에 첫번째 클릭한 파일과 비교합니다.

 

5. ShellnewTxt.reg (우클릭-새로 만들기)

우클릭- 새로 만들기- '새 텍스트 문서'를 '텍스트 문서'로 변경시키고 만들어진 .txt 의 파일명을 '새 텍스트 문서'에서 '텍스트 문서'로 변경시킵니다.

 

6. CreateDocument.reg (Directory\Background)

우클릭- 새로 만들기의 서브 메뉴가 아닌  우클릭에서 바로 .txt 문서를 만드는 메뉴입니다. 파일명을 무엇으로 할까?가 문제인데 %USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo\문서.mydocs  파일이 언어 버전별로 다르게 나타나는 것 같아 이 파일에서 파일명을 참조했습니다. 영문에서는 Document1, Document2,... 한글에서는 문서1 ,문서2.... 이런 식으로 만들어 집니다.

 

7. ControlPanelShortcut.reg (DesktopBackground)

몇몇 제어판 바로가기가 등록되어 있습니다.

 

8. CreateVHD.reg (Directory\Background, Shift)

diskpart 를 이용한 명령줄로 VHD를 생성합니다.

 

9. DiskClean.reg (Directory\Background)

IE의 검색기록 삭제, 디스크 정리, %temp% 폴더 비우기등..

 

10. EnvironmentVariable.reg (DesktopBackground)

환경 변수 폴더 바로가기 입니다.

 

11. InfPnPUtil.reg (.inf)

.INF 형식의 드라이버를 설치할 때 보통은 장치관리자에서 경로를 지정해서 설치하는데 이것은 Pnputil.exe 를 이용해 설치하는 것입니다.

 

12. MsiPassiveInstall.reg (.msi)

msiexec.exe 의 명령줄 옵션에 /passive 옵션이 있는데 진행 표시줄만 표시하고 무인 모드로 설치하는 것입니다.

 

13. MsuDismInstall.reg (.msu)

.msu 파일을 wusa.exe 가 아닌 현재 디렉토리의 모든 .msu 에 대해서 %temp% 폴더에 압축을 푼다음 dism.exe /online /add-package /packagepath:  /IgnoreCheck /norestart 명령줄로 설치합니다.

 

14. ProgramFiles(x86)IE.reg, ProgramFilesIE.reg (DesktopBackground)

IE를 명령줄 옵션으로 실행시키는 것입니다.

 

15. RegSilentMerge.reg (.reg)

regedit /s 명령을 사용하여 병합시키는 것입니다.

보통은 .reg 파일을 16개 이상 선택후 우클릭하면 관련된 메뉴가 나타나지 않습니다. 기본값이 15개까지 입니다.

 

"MultiSelectModel"="Player"  값을 추가해주면 15 이상 선택해도 사용할 수 있습니다.

"MultiSelectModel"="Single"   은 1개를 초과하여 선택시 우클릭하면 사용할 수 없도록 제한합니다. 위 MsuDismInstall.reg 에 적용했습니다. 그렇지 않으면 선택한 갯수만큼 반복적으로 작동이 되기 때문입니다.

 

16. RestartExplorer.reg (DesktopBackground)

시스템 변경사항을 적용하는데 가장 좋기로는 시스템을 다시 시작하는 것이지만 부분적으로는 Explorer.exe 만 다시 시작해도 변경사항이 적용되는 경우가 있습니다. taskkill 명령으로 Explorer.exe를 강제로 종료시켰다 다시 시작합니다.

 

17. SearchFile.reg (Drive, Folder)

파일 검색 메뉴 인데, 예전에는 Dir /s 명령을 사용했지만 Where /r 명령으로 바꿨습니다. 체감 속도는...

 

18. SelectAll.reg (Directory\Background)

'모두 선택' 메뉴입니다.

 

19. ShowExt.reg ,ShowHidden.reg (Directory\Background)

'파일 확장자 표시'와 '숨김 파일 표시'입니다. %temp% 폴더에 .vbs 파일을 만들고 실행 시킵니다. 작동하는 방식은 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced 경로의 레지스트리 값을 변경시키고 새로 고침을 하는 것인데 이 '새로 고침'에 해당하는 cmd 명령이 없는 것 같습니다. Explorer.exe 를 다시 시작 시키면 되지만 ..

 

20. VHD.reg (.vhd)

VHD 연결 ,분리 ,Compact ,부팅등록 메뉴를 사용할 수 있습니다.

InfoTip -마우스를 올리면 설명이 나타납니다.

DefaultIcon- 탐색기에서 표시되는 아이콘을 추가로 적용해 봤습니다.

 

21. WIM.reg (.wim, .swm)

Imagex 메뉴와 분할 파일인 .swm 메뉴를 추가했습니다. Windows 폴더나 System32 폴더에 imagex.exe 파일이 있어야 사용할 수 있습니다. win7 sp1 설치 이미지 파일의 sources 폴더 안에 dism.exe(17154 버전)은 많은 기능이 빠져 있는 것 같습니다.

dism.exe 로 시작하는 명령줄 때문에 위의 dism.exe 가 실행되어서 여러가지 작동이 안되는 문제점이 있어서  %SystemRoot%\System32\dism.exe(16385 버전) 로 수정했습니다.

Dism 메뉴의 분할선은 "CommandFlags"=dword:00000020 를 추가해 주면 해당 메뉴의 앞쪽에 분할선을 만들어 주고, "CommandFlags"=dword:00000040 값을 추가해 주면 해당 메뉴의 뒤쪽에 분할선을 만들어 줍니다.

 

---------------------------------------------------------------

다음은 기존에 있는 레지에 아이콘이나 문자열 값만 변경시킨 것입니다.

 

22. AxDllOcx.reg (.ax .dll .ocx)

regsvr32 "%1"  명령을 사용합니다. 표시되는 문자열 값을 변경시켰습니다.

 

23. KillNotRespondingTasks.reg (DesktopBackground)

taskkill /F /FI "STATUS eq NOT RESPONDING"  명령을 사용합니다. 아이콘 값 추가했습니다.

 

24. RecycleBin.reg (DesktopBackground)

우금티님이 올려 놓은 자료인데 중복이지만 같이 올립니다. 휴지통 비우기 우클릭 메뉴입니다. 변경된 사항 없습니다.

-----------------------------------------------------------------

 

시스템 아이콘 값을 보려면 "iconsext.exe" 이란 유틸을 추천합니다. System32 폴더의 모든 파일의 아이콘을 보여주고 또한 한꺼번에 추출할 수 있습니다. 아이콘을 적용하려면 "Icon"="DLL,EXE의 파일경로,-리소스ID" 혹은 "Icon"="DLL,EXE의 파일경로,인덱스번호"를 사용합니다. "iconsext.exe"에서 보면 대부분 음수를 써서 번호를 적어주면 틀리지는 않습니다.

 

<수정-2011.11.23>

몇가지를 수정해서 다시 올렸습니다.

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
730 소프트웨어| Total Commander 10.5x 32비트 및 64비트용 확장 한국어 메... [12] VᴇɴᴜꜱGɪ 2220 18 09-05
729 윈 도 우| 할당되지 않은 공간...1MB? [4] 밤이슬216 2220 5 03-24
728 윈 도 우| 크로미엄 엣지브라우저 한국어화 적용 방법 [3] 도전정신 2215 3 06-23
727 윈 도 우| 윈도우 부팅 오류 해결 [16] 메인보드 2214 22 03-11
726 윈 도 우| Internet Explorer 즐겨찾기 전체 목록 이름순 정렬하기 [4] NetEagle 2195 8 10-14
725 기 타| 바이두 인증후 메일로만 사용 [4] 바이두매니 2195 2 06-05
724 윈 도 우| 절전모드 바로가기 3형제 [6] suk 2193 8 03-09
723 소프트웨어| 데이터 손실 없이 동적 디스크를 기본디스크로 변경하기 [3] gooddew 2193 11 09-19
722 소프트웨어| * 프리미어 강좌 14 조명효과 (Lighting Effects) 넣기 - ... murimgasa 2192 0 10-21
721 소프트웨어| 오토핫키 절대한영전환 사용하기 [8] 미유키로즈 2189 9 01-21
720 윈 도 우| 이 번 업데이트로 엣지에 추가된 사이드바 버튼 제거 [7] 고고추 2187 9 02-16
719 소프트웨어| PE 섹션 수정하기 [15] sunshine 2185 14 07-11
718 소프트웨어| [오토핫키]듀얼모니터에서 커서 점프하기 Version 6 [7] shot4u 2175 14 04-13
717 윈 도 우| 집앞의_큰나무님의 "우클 PE 부팅" 원클릭화 (TE... [5] 레마클로 2173 7 01-23
716 윈 도 우| 클XX님 PE 에서 StartIsBack 시작 버튼 바꾸기 [2] Yeong 2169 2 04-22
715 윈 도 우| PE를 USB가 아니고 하드 디스크에서 넣어서 부팅하기 입니다. [12] 하늘은높고 2160 15 11-21
714 소프트웨어| 디펜터에서 화일 바이러스 잡을경우 해결방법 [1] 조랑말 2160 6 03-20
713 기 타| 데비안 8.3에서 시냅틱 저장소 항목 변경하기 [2] 스마트(SMART 2159 0 02-11
712 윈 도 우| WinPE (Windows PE) 빌더 다운로드 및 정보 [3] 오스 2157 4 05-31
711 윈 도 우| 소소한 배치파일 팁 2가지(start 명령, %time%) [7] 메리아 2156 10 05-26
XE1.11.6 Layout1.4.8