2011-04-23 6 views
2

SYSTEM 사용자로 실행되는 Windows 서비스를 개발합니다. 그래서이 서비스를 구성하기위한 설치 프로그램을 만들고 싶습니다. 설치 프로그램은 Windows 레지스트리에 항목을 작성합니다.Windows 레지스트리 쓰기/읽기 - Windows 서비스

Windows 서비스가 시작되면 설치 프로그램에서 생성 한 이러한 항목을 읽습니다.

이 항목은 구성 파일을 가리키고 서비스의 로그 파일을 저장할 위치를 가리 킵니다. 어떤 키이 작업을하려면 쓰기/읽기가 필요합니까? 나는 권한에 대해 걱정하고있다.

CURRENT_USER 키에 있습니까?

저는 Delphi에서 Windows 서비스를 개발합니다.

감사합니다.

+0

서비스를 개발중인 경우 LOCAL_MACHINE 키를 사용하는 것이 안전하다고 생각합니다. 어쨌든 서비스에 관리자 권한이 필요하므로 레지스트리의 초기 값을 설치 프로그램에 포함시킬 수 있습니다. – yms

+2

@DD : 아니요, 서비스 설정을 HKEY_CURRENT_USER에 저장하지 마십시오. 서비스는 SYSTEM 계정에서 실행되지만 사용자는 대신 자신의 계정으로 설치 프로그램을 실행하므로 HKEY_CURRENT_USER는 레지스트리의 다른 섹션에 매핑됩니다. HKEY_LOCAL_MACHINE을 사용하거나 레지스트리를 전혀 사용하지 않아야합니다. –

답변

1

Remy 님의 의견이 정확합니다.

SYSTEM 계정에는 자신의 HKEY_CURRENT_USER 레지스트리 하이브가 없습니다.

HKEY_LOCAL_MACHINE에 구성 정보를 저장하거나 AppData 디렉터리의 사용자 지정 XML 구성 파일에 구성 정보를 저장해야합니다.

사이드 노트 : 프로필 하이브가로드되지 않았을 때 HKEY_CURRENT_USER을 사용하려고하면 HKEY_USERS/.DEFAULT이 발생합니다. 어떤 것을 사용하고 싶지 않습니다.

관련 문제