시작 프로그램이란?

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


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

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

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

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


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

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

 

 

신고
캐플 블로그에 공개된 글은 반드시 원본 글의 링크를 포함시키는 조건으로 자유롭게 이용하실 수 있습니다.
하지만 블로그의 발전을 위하여 되도록이면 링크로 글을 소개해주시길 부탁드립니다. ^^

- 상업적인 용도의 사이트는 대상에서 제외됩니다. -
- 글에는 오류가 있을 수 있고, 추후 수정 또는 재발행될 수 있습니다. -
  1. 감사합니다 2012.05.14 01:41 신고  댓글주소  수정/삭제  댓글쓰기
    틈틈히 관심가지고 보고있는 CApple 님 글을 봅니다,, 귀한 정보 감사하며
    무지몽매한 컴맹들에게 단비를 내려주셔니 언제나 고마습니다,,,
    더 많은 정보를 부탁드리며 건승을 성원합니다,,
  2. 보행인 2012.06.11 18:51 신고  댓글주소  수정/삭제  댓글쓰기
    비베스크립트에서....그 windowscript.shell

    에서 ActiveX 오류가 나는데.뭐가.문제인거죠 ㅠㅠ
    • BlogIcon CApple 2012.06.11 20:37 신고  댓글주소  수정/삭제
      글쎄요. 제도 어디에선가 얻은 코드라 정확한 답변을 드릴 수는 없네요. ㅜ_ㅜ WSscript.sell 이 EXE 등 외부 파일을 실행하는 코드라는 것 까지 밖에는 모르는지라...
  3. BlogIcon 니드뽀폴쉐 2012.11.22 13:05 신고  댓글주소  수정/삭제  댓글쓰기
    C-Cleaner에서 시작프로그램 정리하면서 봤던 레지(?)네요.

    좋은 정보 감사드립니다~ ^^
  4. AN0NYM0US 2012.11.22 19:09 신고  댓글주소  수정/삭제  댓글쓰기
    제가 레지스트 좀 건드릴려고하는데, 포스팅하셨네요.^^;
    온라인에서 하이브로드해서 필요한 레지스트를 내보내기로 저장해두었습니다.
    이것을 오프라인(예: 가상디스크를 마운트한 윈도우)에 등록시키고 싶습니다.
    가상디스크로 부팅후에 저장해둔 레지파일을 각각 실행해서 등록시키는 방법말고,
    마운트한 오프라인 운영체제에 레지스트 등록시키려면 어떻게 해야 하는건가요?
    둔해서 그런지, 질문도 이상하게 꼬이네요.
    • BlogIcon CApple 2012.11.23 08:52 신고  댓글주소  수정/삭제
      온라인 중인(현재 사용 중인) 윈도우의 레지스트리를 하이브로드 한 후 이걸 저장한다는 건가요? 온라인 상태의 하이브는 로드가 안 되는데요? 지금 질문에 뭔가 오류가 보이네요. 지금 실행 중인 윈도우의 레지스트리를 저장해서, 현재 실행 중이지 않은 다른 윈도우의 레지스트리로 병합할 수 있냐는 건가요?

      그런거라면 일단 레지스트리 내보내기 -> 다른 윈도우의 레지스트리를 하이브 로드 -> 앞서 저장한 레지스트리 파일을 열어서 키 경로들을 하이브 로드한 경로에 맞게 수정 -> 병합하시면 됩니다.
  5. AN0NYM0US 2012.11.23 18:27 신고  댓글주소  수정/삭제  댓글쓰기
    아하! 답변 감사드립니다.
    간단하게 알려주셔서 감사합니다.
    앞에 중요한 내용을 다 빼먹고, 두서없이 적다보니 질문이 어설프네요.^^

    지금 하고자 했던 작업을 말씀드리면,
    PE 4.0에 익스플로어를 실행 시킬려고 하는데, 필요한 파일들은 복사했는데,
    레지스트 등록을 어떻게 하는지 몰랐거든요.

    윈도우8 설치파일의 install.wim을 마운트 해서, 현재 부팅중인 윈도우로 레지에디트 실행시키고,
    마운트한 install.wim파일의 system32폴더에 software파일을 하이브로드했습니다.
    그리고 익스플로어와 연관있는 레지 값을 내보내기로 reg파일로 만들었거든요.
    이 reg파일을 윈PE에 등록 시키려고 했었습니다.

    그런데, PE의 특징이 부팅시 항상 초기화를 시켜버리니까.
    레지값도 변경되는것이 아닌가? 하고 생각 했었거든요.
    그래서 오프라인 상태에서 이 reg파일을 PE에 등록시킬려고 했었습니다.^^;;

    일일이 수정작업 안하고 저 reg파일을 활용할 방법은 없을까요?
    • BlogIcon CApple 2012.11.23 22:54 신고  댓글주소  수정/삭제
      수정하고 병합하는 것 외엔 딱히 방법이 생각나질 않네요. 수정도 키의 앞부분은 전체적으로 공통일테니 메모장이나 에디터로 일괄 바꾸기 작업하시면 좀 수월하게 될 듯한데요.
  6. AN0NYM0US 2012.11.24 12:28 신고  댓글주소  수정/삭제  댓글쓰기
    답변 감사합니다.^^
  7. 구글러 2012.11.29 18:48 신고  댓글주소  수정/삭제  댓글쓰기
    질문드립니다~ 홈페이지 고정 레지스트리를 컴퓨터 부팅시마다 실행시키고 싶은데요
    레지스트리 등록시에 확인메뉴 뜨는걸 안뜨게 하면서 레지스트리를 부팅시마다 적용시키는 방법은 없을까요?
  8. 죄송한데 2013.05.03 14:29 신고  댓글주소  수정/삭제  댓글쓰기
    혹시 관리자권한으로 실행해야 하는 프로그램 등록은 어떻게 해야 하나요?ㅠㅠ
    • BlogIcon CApple 2013.05.03 15:36 신고  댓글주소  수정/삭제
      작업 스케줄러에선 관리자 권한으로 실행시키는 게 가능합니다. 작업 스케줄러에서 윈도우 로그온 과정에서 프로그램을 실행하도록 등록하는 거죠. 제 블로그에서는 아직 해당 내용에 대해서는 다루지 않았네요. 아무튼, 그쪽으로 알아보세요. ^^

      p.s 참고로 작업 스케줄러는 제어판 -> 관리 도구로 들어가면 있습니다.
  9. 용지니 2013.06.04 08:25 신고  댓글주소  수정/삭제  댓글쓰기
    안녕하세요(__) 너무 좋은 글들이 많아서 정독 했습니다^^

    질문 하나만 드려도 될까요..

    제가 업무하고 있는 그룹웨어를 다루는데 회사 2800명정도의 그룹웨어 환경설정문제가 가장 이슈입니다.

    그것들은 ie 10을 제외한 모든 인터넷익스플로러가 대상인데요..

    해당 익스플로러의 active X 관련 문제가 대다수 입니다. 그리고 보안관련 등등


    제가 예전에 근무했던 곳에 옆에 대리님이 비슷한 문제로 고민하다가,

    REG 파일을 만들어서 배포했습니다.

    그것은 즉슨, 그 REG파일을 등록하면 인터넷관련 옵션이 REG에 등록된 형태로 변경이 되는거죠

    - 필수사이트 자동등록
    - 보안관련 수준 최소
    - 고급설정에서 ACTIVE X 관련 모두 체크
    - 등등

    원하는 형식대로 원격을 연결해서 제가 직접 해주지 않아도 사용자가 레지스트리 등록만 하면

    정확한 환경설정으로 셋팅이 되어서, 인터넷에 그 방법을 찾아 보았더니,

    가장 관련된 글 및 내용이 캐플님의 블로그였습니다.



    이런 부분이 궁금해서 그런데.. 어찌하는것인지 여쭈어 봐도 될까요?
    • BlogIcon CApple 2013.06.04 09:07 신고  댓글주소  수정/삭제
      원하시는 작업에서 가장 중요한 것은 "특정 설정을 바꿨을 때 어떠한 레지스트리가 어떻게 변경된다" 라는 것을 파악하는 것이라고 생각합니다.

      특정 설정과 관련된 레지스트리는 해당 설정을 진행하기 전과, 진행한 후의 전체적인 레지스트리를 비교하여, 해당 설정이 어떠한 레지스트리를 변경시키는지를 파악하는 것으로 알아내게 됩니다. 그렇게 파악한 레지스트리 정보들을 모으면 되는 것이죠.

      이와 같은 작업을 거쳐 모은 레지스트리 정보들은 나중에(다른 컴퓨터에서) 레지스트리 파일만을 통해 설정할 때 사용하시면 되는 겁니다.

      그래서 무엇보다 레지스트리를 비교하는 작업이 중요합니다. 해당 작업은 제 예전 백업 블로그인 [link]http://shinb.tistory.com/406[/link] 글에서 설명한 것과 같이 윈도우의 기본 기능으로도할 수 있지만, 사실 좀 삽질에 가까운게 사실이고요. 프로그램 중에서 이를 도와줄 수 있는 가장 좋은 프로그램으로는 Regshot 이란 프로그램을 추천해드립니다. 무료 프로그램이기 때문에 검색해보시면 쉽게 구하실 수 있으실 겁니다.
    • 용지니 2013.06.04 09:19 신고  댓글주소  수정/삭제
      감사합니다(__)

      regshot을 보니 이런 툴도 있나 하는 마음에 햄볶합니다.

      그렇다면 제가 관련 reg 파일을 만들어서 배포하려면..

      캐플님이 말씀하신대로 변경된 레지스트리의 정보를 한곳으로

      모으고 그다음에 그것들로 bat를 만들고 reg로 변경하라고

      자문을 받앗는데.. 일단은 정보를 모으고 다시한번

      캐플님의 자문을 구하도록 하겠습니다(__)

      정말 유용합니다. 감사합니다. ^^*



      =========================
      제가 하는 작업이 이렇게 하면 되는지요..

      REGSHOT 으로 변경전 레지스트리와
      변경후 레지스트리를 비교하여 변경하고자 하는
      레지스트리 정보들을 모으는 것

      =============================

      감사합니다^^
    • BlogIcon CApple 2013.06.04 09:30 신고  댓글주소  수정/삭제
      예 그렇게 작업하시면 됩니다.

      1. 레지스트리란 게 윈도우의 모든 정보를 담고 있는 곳이다보니 Regshot 을 통해 작업 전과 후의 레지스트리를 비교할 때도 그 사이에 일어난 다른 작업들의 정보가(프로그램 창이 열리고 닫히는 정보조차) 함께 비교되는 경우가 많습니다. 그러한 부분들은 적절히 잘 선별하셔야 합니다. 뭔가 헷갈리면 레지스트리 값에 대해서 구글 검색을 해보시면 참 많은 정보를 얻을 수 있습니다. ^^

      2. .reg 파일이 아닌 bat 이나 .cmd 로 제작하여 배치 파일 형태(단순히 더블 클릭하여 실행하면 되는 구조)로 배포하시려나 보네요. 그럴 땐 아래의 명령을 참고해보세요.

      reg add
      reg delete
      reg import

      명령 프롬프트에서 reg add /? 과 같은 형태로 보시면 됩니다.
  10. peterminsu 2014.02.04 23:06 신고  댓글주소  수정/삭제  댓글쓰기
    음..이 배치파일이 실행되고있는건 작업관리자에서 확인 가능한가요?
  11. peterminsu 2014.02.04 23:06 신고  댓글주소  수정/삭제  댓글쓰기
    음..이 배치파일이 실행되고있는건 작업관리자에서 확인 가능한가요?
  12. BlogIcon 은행나무777 2014.02.07 10:30 신고  댓글주소  수정/삭제  댓글쓰기
    좋은 자료 감사합니다.^^
  13. 짱입니다 2014.02.18 17:56 신고  댓글주소  수정/삭제  댓글쓰기
    감사합니다... 드디어 찾앗네요 ㅠㅠ
  14. park 2015.06.17 15:13 신고  댓글주소  수정/삭제  댓글쓰기
    좋은 자료 감사합니다~
  15. BlogIcon 박한규 2016.04.29 01:47 신고  댓글주소  수정/삭제  댓글쓰기
    오쟁이 입니다 감사합니다
  16. BlogIcon 한수 2017.09.14 02:05 신고  댓글주소  수정/삭제  댓글쓰기
    팁 정보 감사합니다.

댓글을 달아 주세요

- 댓글에선 예의를 지켜주시기 바라며, 블로그지기는 댓글에서 따로 활동하지 않습니다.

* 티스토리 사용자는 여기를 클릭하시면 로그인 됩니다.

BBCode 안내   굵게 밑줄 기울임 취소선   취소선 취소선 취소선 취소선   왼쪽 정렬 가운데 정렬 오른쪽 정렬   코드박스 인용구 이미지   이미지 업로드-Imgur.com