자동실행을 위해 레지스트리 등록하는 방법

 

프로그램이 자동실행되도록 하기 위해선

시작프로그램에 등록하거나

레지스트리에 등록하는 방법이 있다.

 

레지스트리 등록은 2군데에서 가능한데

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run


regedit.exe를 통해서 첫번째 경로에 가보면 백신 프로그램들이 등록되어 있는 것을 확인할 수 있다.

 

첫번째 경로에 등록하려면 '관리자 권한'이 요구되며 시스템에 로그인하는 모든 사용자 계정에 영향을 준다.

즉, 어느 계정으로 로그인 하던지 프로그램이 자동실행되게 만든다.

두번째 경로는 등록시 관리자 권한은 필요없지만, 현재 로그인한 사용자에 대해서만 로그인 시 프로그램이 자동 실행된다.

 

위의 경우는 모두 "로그인 시"에 자동 실행되는 것이고, "컴퓨터 시작 시"에 자동 실행되도록 하고 싶다면 해당 프로그램을 작업 스케쥴러에 등록하거나, "서비스"로 만들어서 시스템에 등록해야 한다.

레지스트리 변경방법은

 

// 프로세스 이름 얻어오기 

processName = Path.GetFileNameWithoutExtension(Application.ExecutablePath);

 

rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);

 

//레지스트리 등록 할때
if (rkApp.GetValue(processName) == null)
{
    rkApp.SetValue(processName, Application.ExecutablePath.ToString());
}

 

//레지스트리 삭제 할때
if (rkApp.GetValue(processName) != null)
{
    rkApp.DeleteValue(processName, false);
}

 

위의 코드를 참고하면 된다.

 

Posted by 휘프노스
,