• Daum블로그로 구독
  • HanRSS
  • Google
  • RSS
  • Bloglines

IT2011. 11. 3. 00:17

C# 윈도우 시작프로그램 등록, 삭제 / C# Add,Remove registry entries for windows startup



C# 프로그래밍(programming)을 접한지 얼마되지 않아 하나의 기능을 구현하기 위해 국내 및 외국 사이트에서 소스를 찾기 위해 동분서주 하느라 대부분의 시간을 보내고 있습니다.  

저와 같은 고민을 하시는 초보 C# 프로그래머 분들에게 도움이 되셨으면 하는 생각에 포스팅을 합니다. 

여기서 소개하는 소스는 C#으로 윈도우(windows)의 시작프로그램(startup)에 등록, 삭제하는 코드로 서두에서 말씀드린 바와 같이외국 사이트에서 찾아낸 C# 알고리즘 입니다.

여기에서 언급하는 시작프로그램은 msconifg(시스템 구성 유틸리티, 아래 그림 참조) 상의 시작 프로그램에 등록, 삭제하는 것으로 실제로는 레지스트리(registry) 상에 등록, 삭제하는 것입니다. ([시작]->[모든 프로그램]->[시작프로그램]에 등록, 삭제하는 것이 아닙니다.)

C# Add Remove registry entries windows startup C Sharp 시작프로그램 등록 삭제 프로그래밍


1. C# 프로그래밍 사전 지식


[시작 프로그램의 레지스트리의 위치]
SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run

[C# 레지스트리 접근 클래스 또는 네임스페이스(name space)]
Microsoft.Win32.RegistryKey

[함수 SetStartup(string AppName, bool enable)]
SetRegStartup 함수는 AppName, enable 2개의 파라미터를 받아 처리하도록 작성이 되었습니다.
 * AppName : 등록 또는 제거 하고픈 응용프로그램 이름
 * enable : true(등록), false(삭제)

2. C# 프로그래밍 소스코드

 
private void SetStartup(string AppName, bool enable)
{
    string runKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
    Microsoft.Win32.RegistryKey startupKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(runKey);
   
    if (enable)
    {
        if (startupKey.GetValue(AppName) == null)
        {
            // 시작프로그램에 등록(Add startup reg key)
            startupKey.Close();
            startupKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(runKey, true);
            startupKey.SetValue(AppName, Application.ExecutablePath.ToString());
            startupKey.Close();
        }
    }
    else
    {
        // 시작프로그램에서 삭제(remove startup)
        startupKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(runKey, true);
        startupKey.DeleteValue(AppName, false);
        startupKey.Close();
    }
}
    
    
C# 프로그래밍에 조금이나마 도움이 되셨으면 합니다.
http://all4cs.tistory.com - 두그미의 사는 이야기 


Posted by 4Cs