본문 바로가기
프로그래밍/C++

C++ ] 레지스트리 등록하여 윈도우 시작시 앱 자동 실행 하기

by eteo 2023. 9. 22.

 

 

 

레지스트리 등록하여 윈도우 시작시 앱 자동 실행 하기

 

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

 

 

HKEY_CURRENT_USER를 사용하면 현재 로그인한 사용자의 시작 프로그램으로 등록하고, HKEY_LOCAL_MACHINE을 사용하면 모든 사용자에게 적용된다.

 

위 경로에서 "새 문자열 값"을 선택하고 값 이름은 프로그램을 식별할 만한 이름으로 지정하고, 값 데이터에는 실행할 프로그램의 경로를 입력하면 윈도우 부팅 시 등록한 프로그램이 자동실행된다.

 

 

// 실행파일의 경로 알아내기
wchar_t exePath[MAX_PATH];
GetModuleFileName(NULL, exePath, MAX_PATH);

//레지스트리 등록
HKEY hKey;
if (RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_WRITE, &hKey) == ERROR_SUCCESS) {

    if (RegSetValueEx(hKey, L"YourAppName", 0, REG_SZ, (BYTE*)exePath, (DWORD)(wcslen(exePath) + 1) * sizeof(char)) != ERROR_SUCCESS) {
        OutputDebugString(L"Registry value setting failed\n");
    }

    RegCloseKey(hKey);
}
else
{
    OutputDebugString(L"Registry Open failed\n");
}

 

 

이미 같은 이름으로 등록된 레지스트리가 있는 경우 새로운 값으로 덮어씌워진다.