2014-03-25 2 views
1

저는 C++ 응용 프로그램을 만들고 있는데 창을 시작할 때 내 응용 프로그램을 시작할 수있는 옵션을 사용자에게 제공하려고합니다. 우선 마음에 나는 그것을 설정하기 위해 Windows 레지스트리를 사용하지만, 어디에 쓸 것인지, 무엇을 쓸지 모른다. 또한 사용자가 내 응용 프로그램을 실행할 때 관리자 권한이 있어야 필요에 따라 Windows 레지스트리의 해당 부분에 쓸 수 있습니까?Windows 시작시 응용 프로그램을 시작하는 방법은 무엇입니까?

+0

당신이 Windows가 시작될 때 시작하도록 응용 프로그램을 원했다는 것을, 또는 당신이 때 사용자 로그를 시작하도록 응용 프로그램을 원했다는 것을 찾으시는 것입니까? –

답변

2

Software\Microsoft\Windows\CurrentVersion\Run 키 (자세한 내용은 MSDN 참조)를 사용해야합니다. (문자열) 값은 응용 프로그램의 경로 여야합니다.

HKEY_CURRENT_USER에 관리자 권한을 만들 필요는 없지만 응용 프로그램은 현재 사용자 세션에서만 시작됩니다. 모든 사용자에 대해 자동으로 시작해야하는 경우 상승 된 권한으로 HKEY_LOCAL_MACHINE 하이브를 사용하십시오!

+0

감사합니다. 나는 이것이 그것을 할 것이라고 생각한다. – Tracer

1

레지스트리는 숨겨진 방법입니다. 프로그램 메뉴의 Startup 폴더는 사용자가 볼 수있는 방법입니다. CSIDL_STARTUP을 참조하십시오. 관리자 권한은 필요 없으며 사용자 별 설정입니다. CSIDL_COMMON_STARTUP에는 관리자 권한이 필요합니다.

+0

그러나 응용 프로그램이 이미 시작되었는지 확인하는 것이 더 어렵습니다. – Tracer

+0

사실 파일 검사만으로 훨씬 쉽습니다. – MSalters

1

응용 프로그램을 추가하여 레지스트리를 통해 시작할 수 있습니다. 나는에 대한 샘플 기능을 쓴 당신

public void AddToStartup(string name) 
    { 
     RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 
     rkApp.SetValue(name + ".exe", Application.ExecutablePath.ToString()); 
    } 
+0

감사. 코드를 작성하는 데 문제가 없습니다. 나는 어디서 무엇을 써야하는지 알고 싶었고 관리자 권한이 필요했다. – Tracer

관련 문제