[Windows 팁] 윈도우 시작 프로그램, 레지스트리 등록 및 배치 파일 팁 :: 소림사의 홍반장!
시작 프로그램이란?


시작 프로그램이란 윈도우가 시작될 때 자동으로 실행되는 프로그램 입니다. 즉, 윈도우가 시작될 때마다 매번 자동으로 시작되는 프로그램들의 집합을 의미하는 것이죠. 시작 프로그램은 시작프로그램 폴더, 또는 관련 레지스트리에 원하는 프로그램(바로 가기, 실행 파일, 배치 파일 등)을 등록하는 것으로 지정할 수 있습니다.


참고로 이러한 시작 프로그램은 사용자 계정별로 따로 적용되는 개별 사용자용 시작 프로그램과 모든 사용자에게 공통으로 적용되는 전체 사용자용 시작 프로그램 두 가지 종류로 나누어집니다.

개별 사용자용 시작 프로그램 - 해당 사용자 계정으로 로그온될 때만 실행됨.
전체 사용자용 시작 프로그램 - 모든 사용자 계정에서 공통으로 실행됨.


또한 시작 프로그램은 윈도우 시작시마다 항상 실행되는 지속용 시작 프로그램과, 다음 번 로그온 때 한 번만 실행되고 이후 제거되는 일회용 시작 프로그램으로 다시 나누어지죠.

지속용 시작 프로그램 - 매번 윈도우의 지정한 사용자 계정으로 로그온될 때마다 자동으로 실행됨.
일회용 시작 프로그램 - 다음번 윈도우의 지정한 사용자 계정으로 로그온될 때 한 번만 실행되고 이후 제거됨.



즉, 시작 프로그램에는 개별-지속, 개별-일회, 전체-지속, 전체-일회의 총 네 가지 형태의 유형이 존재한다고 생각하시면 됩니다. 그리고 마지막으로 윈도우에서 시작 프로그램을 등록하는 방법은 크게 아래의 두 가지 방법이 있습니다.

1. 시작 프로그램 폴더에 등록.
2. 레지스트리의 Run 과 RunOnce 에 등록.








시작프로그램 폴더


시작프로그램 폴더에 등록된 시작 프로그램들의 모습



특정 프로그램, 바로 가기, 배치 파일 등을 시작프로그램 폴더에 위치시키면 매번 윈도우로 로그온될 때마다 시작프로그램 폴더에 위치한 프로그램들이 자동으로 실행되게 됩니다. 즉, 시작프로그램 폴더는 지속형 시작 프로그램들을 위치시키는 공간이라고 할 수 있습니다. 이러한 시작프로그램 폴더는 개별 사용자용과 전체 사용자용, 두 가지 폴더(경로)로 나누어져 있고, 용도에 맞춰 두 폴더 중 원하는 곳에 프로그램(바로 가기, 실행 파일, 배치 파일)을 위치시키면 됩니다.


먼저 사용자 계정별로 달리 적용할 수 있는 개별 사용자용 시작 프로그램 폴더의 경로는 아래와 같습니다.

%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup




다음으로 모든 사용자 계정에 함께 적용되는 전체 사용자용 시작 프로그램 폴더의 경로는 아래와 같습니다.

%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup



윈도우 7 이하 사용자들은 경로는 물론 스크린 샷과 같은 방법으로 간단하게 시작프로그램 폴더에 접근할 수 있으며, 윈도우 8 사용자들도 비슷하게 시작 타일에서 접근할 수 있지만 그냥 경로를 긁어 파일 탐색기를 통해 접근하는 게 더 편하실 겁니다.






시작 프로그램 레지스트리


레지스트리에 등록된 시작 프로그램들의 모습 [개별-지속]



먼저 시작 프로그램에 해당하는 레지스트리 키는 총 네 개로 이루어져 있으며 이들은 아래와 같습니다.

개별 사용자 지속용 : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 
개별 사용자 일회용 : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

전체 사용자 지속용 : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
전체 사용자 일회용 : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce


* 전체 사용자 - HKEY_LOCAL_MACHINE, 개별 사용자 - HKEY_CURRENT_USER
* 일반 - Run, 일회성 - RunOnce



이러한 레지스트리는 Regedit 를 통해 편집할 수 있습니다. 레지스트리를 통해 시작 프로그램을 등록하는 방법은 원하는 키로 이동한 후 하위에 문자열 값(REG_SZ) 을 생성하고 해당 문자열의 값 데이터로 원하는 프로그램(기능)의 실행 명령을 등록하면 됩니다. 참고로 값 이름은 적절히 자신이 원하는대로 알아먹을 수 있게만 지정하면 됩니다. [레지스트리 편집에 관해선 자세하게 설명하지 않겠습니다.]

해당 키에 원하는 프로그램의 실행 명령을 문자열 값(REG_SZ)으로 등록.



만약에 이것을 명령형 유틸인 Reg 명령을 통해 작업한다면 명령 프롬프트에서 아래와 같은 식으로 작업할 수 있습니다. 해당 명령은 위의 스크린 샷과 동일한 작업을 담고 있으니 옵션들의 뜻은 알아서 유추하실 수 있을거라 믿습니다.

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "Test" /t REG_SZ /d "F:\Temp\Test.cmd" /f








시작 프로그램에 배치 파일을 등록할 때 팁


시작 프로그램에 배치 파일을 등록하면 윈도우를 시작하고 사용자 계정으로 로그온된 후 순간적이지만 명령 프롬프트 창이 떴다가 사라지게 됩니다. 또는 배치 파일의 작업이 오래 걸리는 것이라면 배치 파일이 모두 완료될 때까지 명령 프롬프트가 노출되죠. 이렇게 배치 파일 창이 노출되는 것이 마음에 들지 않는 사용자도 있으리라 생각합니다.

그럴 땐 시작 프로그램에 배치 파일을 직접 등록하는 것이 아닌, 배치 파일을 실행하되 실행되는 명령 프롬프트 창을 숨겨주는 VB 스크립트를 만들고, 해당 VB 스크립트를 시작 프로그램에 등록하는 방법을 사용하면 됩니다. 즉, 아래와 같은 VB 스크립트를 만들어 시작 프로그램으로 등록하면 되는 것이죠. 이 때 빨간색으로 표시한 부분에 원하는 배치 파일을 넣으시면 됩니다.

Example.vbs
Set WinScriptHost = CreateObject( "WScript.shell" )
WinScriptHost.Run Chr(34) & "D:\VARS\Config\Change.cmd" & Chr(34), 0 
Set WinScriptHost = Nothing



원래 윈도우 7 을 기준으로 포스팅한 내용이지만 다른 윈도우들도 이와 다르지 않기 때문에 전체 윈도우용 설명으로 수정한 후 재포스팅합니다. 시작 프로그램에 대해서는 크게 더 이야기할 게 없네요. 이쯤에서 줄이도록 하겠습니다. ^^




다른 카테고리의 글 목록

Dev. 운영체제(OS)/Windows 카테고리의 포스트를 톺아봅니다