레지스트리 등록하여 윈도우 시작시 앱 자동 실행 하기
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");
}
이미 같은 이름으로 등록된 레지스트리가 있는 경우 새로운 값으로 덮어씌워진다.
'프로그래밍 > C++' 카테고리의 다른 글
C++ ] 가변인자 받아서 string 또는 CString으로 출력하기 (0) | 2023.09.24 |
---|---|
C++ ] std::map 자료구조 사용법 (0) | 2023.09.23 |
Windows 프로그래밍 시 OutputDebugString 사용해 디버깅 정보 출력하기 + 가변인자 받아서 디버깅 정보 출력 (0) | 2023.09.21 |
C++ ] 현재 실행중인 실행파일의 경로 얻기, GetModuleFileName (0) | 2023.09.19 |
C++ ] Winsock2의 bind 함수와 functional 헤더의 std::bind 함수 충돌 방지 (0) | 2023.09.17 |