2011-06-14 5 views
1

나는 .NET Framework에서 C#을 사용하여 Windows 응용 프로그램을 개발 중입니다. 응용 프로그램을 설치할 때 레지스트리에 특정 값을 쓰려고합니다. 그래서 나는이에 대한 두 가지 질문이 있습니다C# 응용 프로그램에서 레지스트리 항목을 만드는 방법은 무엇입니까?

  1. 어떻게 또는 우리가 그렇게 할 수있는 프레임 워크의 일부 설정이 설치시 레지스트리 항목을 생성하는 코드를 실행할 수 있습니까?

  2. 레지스트리에 새 노드를 만들지 않으려는 경우 로컬 시스템 설정에 영향을주지 않고 내 값을 저장할 수있는 레지스트리 또는 기존 노드에서 어디에서나 일반적인 장소를 사용할 수 있습니까?

제발 도와주세요.

감사합니다,

Bibhu

+0

어떻게 설정을 레지스트리에 저장하겠습니까? 으니까? 나는 강력하게 [응용 프로그램 설정] (http://msdn.microsoft.com/en-us/library/k4s6c3a0.aspx) 대신 레지스트리에 대한 의존성이없는 방식으로 제안 할 것입니다. –

답변

2

Microsoft.Win32.Registry 클래스를 사용하여 Windows 레지스트리를 읽거나 쓸 수 있습니다.

http://msdn.microsoft.com/en-us/library/microsoft.win32.registry.aspx

단지 기존의 레지스트리 키에 데이터 값을 드롭 나쁜 형태로 간주됩니다.회사 및/또는 응용 프로그램 이름으로 식별되는 키 경로를 만들어 레지스트리 항목을 배치해야합니다. 이는 시스템에서 응용 프로그램을 제거한 후 모든 응용 프로그램을 제거하려는 최종 사용자에게 예의입니다.

2

협약은 아마도 Software 노드 아래에 새 노드를 작성해야 함을 보유하고 있습니다. 레지스트리 키를 만드는 방법에 대해서는 MSDN에 documentation이 많이 있습니다. http://www.codeproject.com/KB/system/modifyregistry.aspx

2) 당신은, 당신이 보장되는 방식으로 설정을 저장할 새 키를 생성해야하지 방해 할 수 있습니다 :

1

1) 여기서 C에서 # 레지스트리에 기록하는 방법에 대한 좋은 튜토리얼입니다 다른 누구나. 일반적으로 컴퓨터 전체에 대한 설정은 HKLM/Software/<your company>/<your application>/에 저장되고 개별 사용자에 대한 레지스트리 설정은 HKLU/Software/<your company>/<your application>/

1

아래에 저장됩니다 (HKLM/소프트웨어/YourCompany/YourApp 아래에 있음) 여기에서 할 일은 적절합니다.

또한 레지스트리에 쓰는 일반적인 문제는 이렇게하려면 관리자 권한이 있어야한다는 것입니다. 그러나 msi 기반 설치 프로그램을 사용하는 경우 설치를 실행하려면 관리자 권한이 있어야하며 설치 프로그램은 레지스트리에 쓸 수 있습니다. 많은 사용자가 할 수 없으므로 나중에 앱에서 해당 항목을 변경하려고 계획하지 마십시오.

1

처음에는 설치 중에 레지스트리에 쓰려고하기 때문에 레지스트리 수정을 포함하도록 MSI 파일을 수정할 수 있습니다. 이 문서에서는이에 도움이 될 것입니다

http://msdn.microsoft.com/en-us/library/bb458038.aspx

당신이 배포 전용 작업을 위해 별도의 C# 코드를 추가하지 않는이 방법. 설치 후 레지스트리를 계속 수정하려면 C# 내부에서 수행 할 명령을 추가 할 수 있지만 이것이 필요하지는 않습니다.

이 정보를 어디에 설치해야하는지에 관해서는이 용도로 자체 노드를 만드는 것이 좋습니다. 이것이 레지스트리의 목적입니다. 같은 영역에있는 두 개 이상의 응용 프로그램에서 정보를 혼합하기 시작하면 문제가 생길 것입니다. 레지스트리의 규칙에 따라 자신 만의 위치를 ​​만드십시오.

관련 문제