BOOL CLXStartupManagerDlg::GetStartupListIn() { HKEY hKey; long lSubResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, // HKEY_CURRENT_USER _T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"), 0, KEY_READ, &hKey); if(lSubResult != ERROR_SUCCESS) { RegCloseKey(hKey); AfxMessageBox(_T("Key Open Error")); return FALSE; } DWORD dwIndex = 0; int nIndex = 0; CString SubName = _T(""); CString SubValue = _T(""); DWORD dwSubName = MAX_PATH; DWORD dwSubValue = MAX_PATH; while(RegEnumValue(hKey, dwIndex++, SubName.GetBuffer(MAX_PATH), &dwSubName, NULL, NULL, (unsigned char*)SubValue.GetBuffer(MAX_PATH), &dwSubValue) == ERROR_SUCCESS) { SubName.ReleaseBuffer(); SubValue.ReleaseBuffer(); m_ListCtrlStartupList.InsertItem(nIndex++, SubName.GetBuffer(0)); SubValue.ReleaseBuffer(); SubValue.Empty(); SubName.Empty(); dwSubValue = MAX_PATH; dwSubName = MAX_PATH; } RegCloseKey(hKey); return TRUE; }HKEY_LOCAL_MACHINE 일경우 모든 사용자
HKEY_CURRENT_USER 일 경우 해당 사용자에게만 적용 됩니다.
SubName : 값의 이름입니다. (주로 프로그램의 이름이 들어갑니다.)
SubValue : 값의 내용입니다. (실행할 파일의 경로가 들어갑니다.)
m_ListCtrlStartupList.InertItem(nIndex++, SubName.GetBuffer(0)); 는 해당 리스트 박스로 수정해주셔야 합니다.