//////////////////////////////////////////////////////////
//  Function Name  
//      SetRegistyStartProgram
//
//  Parameters 
//      bAutoExec[in]     : TRUE이면 시작프로그램 레지스트리에 등록, FALSE면 해제
//      lpValueName[in]   : 설정할 값의 이름
//      lpExeFileName[in] : 실행시킬 프로그램 Full 경로 (NULL 일수 있음, 단, bAutoExec값이 FALSE이여야 함)
//
//  Return Values
//      시작프로그램 레지스트리에 등록/헤제 성공이면 TRUE, 실패면 FALSE     
//
static BOOL SetRegistyStartProgram(BOOL bAutoExec, LPCSTR lpValueName, LPCSTR lpExeFileName)
{
    HKEY hKey;
    LONG lRes;
    if(bAutoExec)
    {
        if(lpValueName == NULL || lpExeFileName == NULL)
            return FALSE;
        if(RegOpenKeyEx( 
            HKEY_LOCAL_MACHINE,
            "SOFTWAREMicrosoftWindowsCurrentVersionRun", 
            0L,KEY_WRITE,
            &hKey
            ) != ERROR_SUCCESS)
            return FALSE;    
 
        lRes = RegSetValueEx(hKey,
                lpValueName, 
                0,      
                REG_SZ,    
                (BYTE*)lpExeFileName,   
                lstrlen(lpExeFileName)); 
            
        RegCloseKey(hKey);
 
        if(lRes != ERROR_SUCCESS) 
            return FALSE;
    }
    else 
    {
        if(RegOpenKeyEx(
            HKEY_LOCAL_MACHINE,
            "SOFTWAREMicrosoftWindowsCurrentVersionRun", 
            0, KEY_ALL_ACCESS, 
            &hKey) != ERROR_SUCCESS)
            return FALSE;
 
        lRes = RegDeleteValue(hKey, lpValueName);      
 
        RegCloseKey(hKey);
 
        if(lRes != ERROR_SUCCESS) 
            return FALSE;
    }
 
    return TRUE;
}
 
 
ex >
 
 SetRegistyStartProgram(TRUE, "AAA", "C:TestA.exe");    // 등록
 SetRegistyStartProgram(FALSE, "AAA", NULL);    // 해제

facebook posting twit

  • 한국인이 세계 최고 수준? IQ 세계 지도 논란!!
  • 개똥도 약에 쓰려면 없다더니…
  • 저기 ! 당신의 UFO가 파괴되었어요 !
  • 엄마의 메모
  • 포토샵의 위력
  • USB 장치 연결/연결해제 이벤트 처리하기
  • 그거이 알고 잡다
  • 짜장면은 도대체 누가 시켰을까? … 거침없는 짜장면
  • 신데렐라
  • 겨울방학
    Tagged on:     
  • Leave a Reply