Windows 시작 시 Python 스크립트를 자동으로 실행하도록 설정하면, 컴퓨터를 켤 때마다 해당 스크립트가 별도의 조작 없이 함께 실행됩니다. 백그라운드 작업, 모니터링 도구, 자동화 스크립트 등을 상시 구동해야 할 때 특히 유용합니다. 이를 구현하는 방법은 크게 두 가지입니다.
방법 1: Windows 시작 폴더에 스크립트 추가
Windows는 부팅 후 로그인할 때 시작(Startup) 폴더에 있는 모든 응용 프로그램을 마치 더블클릭한 것처럼 자동으로 실행합니다. 따라서 이 폴더에 스크립트의 바로 가기 또는 스크립트 파일 자체를 넣어두면 됩니다.
시작 폴더 경로
C:\Users\사용자이름\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
주의할 점:
- 기본적으로 AppData 폴더는 숨김 처리되어 있으므로, 파일 탐색기에서 '숨긴 항목 보기'를 활성화해야 해당 경로에 접근할 수 있습니다.
- .py 파일의 기본 연결 프로그램이 Python 인터프리터(IDLE 또는 python.exe)로 지정되어 있어야 합니다. 그렇지 않으면 스크립트가 실행되지 않고 메모장 같은 텍스트 편집기로 열려버릴 수 있습니다.
방법 2: Windows 레지스트리에 스크립트 등록
레지스트리의 Run 키에 스크립트를 등록하면 사용자가 로그인할 때마다 해당 프로그램이 자동으로 실행됩니다. 다만 레지스트리 편집은 잘못 수행할 경우 시스템 오류를 일으킬 수 있으므로, 반드시 신중하게 진행해야 합니다.
레지스트리 경로
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
Python 예제 코드
아래 코드는 현재 실행 중인 스크립트 자신을 레지스트리 Run 키에 등록하는 예제입니다.
# 현재 스크립트를 레지스트리에 추가하는 파이썬 코드
# 윈도우 레지스트리를 수정하기 위한 모듈
import winreg as reg1
import os
def AddToRegistry():
# 파이썬에서 __file__은 현재 실행 중인 파일의 경로를 의미합니다.
# 예를 들어 바탕화면에서 실행했다면
# c:\users\current_user\desktop 과 같은 경로가 됩니다.
pth1 = os.path.dirname(os.path.realpath(__file__))
# 확장자를 포함한 파이썬 파일 이름
s_name1 = "mYscript.py"
# 경로와 파일 이름을 결합하여 전체 주소 생성
address1 = os.path.join(pth1, s_name1)
# 수정하고자 하는 키는 HKEY_CURRENT_USER이며,
# 하위 키 값은 Software\Microsoft\Windows\CurrentVersion\Run 입니다.
key1 = reg1.HKEY_CURRENT_USER
key_value1 = "Software\\Microsoft\\Windows\\CurrentVersion\\Run"
# 값을 변경하기 위해 키를 엽니다.
open_key = reg1.OpenKey(key1, key_value1, 0, reg1.KEY_ALL_ACCESS)
# 열린 키에 새 값을 설정합니다.
reg1.SetValueEx(open_key, "any_name", 0, reg1.REG_SZ, address1)
# 작업이 끝나면 반드시 키를 닫습니다.
reg1.CloseKey(open_key)
# 드라이버 코드
if __name__ == "__main__":
AddToRegistry()
이 코드를 실행하면 Run 키에 "any_name"이라는 이름으로 스크립트의 전체 경로가 등록되며, 이후 사용자가 로그인할 때마다 해당 스크립트가 자동으로 실행됩니다. 등록된 항목을 제거하려면 regedit를 실행하여 위 경로에서 해당 값을 삭제하거나, reg1.DeleteValue() 함수를 사용하면 됩니다.