다음 코드가 있습니다.
RegistryKey SOFTWARE = Registry.LocalMachine.OpenSubKey((
from x in Registry.LocalMachine.GetSubKeyNames()
where x == "SOFTWARE"
select x).FirstOrDefault());
RegistryKey Allworx = SOFTWARE.OpenSubKey((
from x in SOFTWARE.GetSubKeyNames()
where x == "ProgramName"
select x).FirstOrDefault());
이 컴파일하고 실행하는 모든 문제는 "ProgramName"SOFTWARE 하위 키 목록에 없습니다. 나는 그것이 regedit에서 현재보고 있기 때문에 그것이 존재한다는 것을 안다. 필자는 ProgramName 키뿐만 아니라 전체 소프트웨어 키에 대한 완전한 제어권을 부여했습니다.
참고로, 코드와 regedit는 모두 내가 찾고있는 것에 동의합니다.
Computer
L--HKEY_LOCAL_MACHINE
L--SOFTWARE
이 문제 외에도,SOFTWARE.getSubKeyNames()
또한 regedit에 나타나지 않는 이름의 무리를 반환합니다. 이것이 어디에서오고 있는지 알지 못하며 일반적으로 내 프로그램 이름이 왜 그렇게 나타나지 않는지에 대해 더 염려합니다.
너는 뛰어 다니고있어.레지스트리 리디렉션. 64 비트 Windows는 32 비트 프로그램의 특정 레지스트리 요청을 자동으로 리디렉션합니다.
64 비트 프로그램으로 컴파일하거나64 비트보기를 요구하십시오.열쇠를 열 때.
ProgramName
레지스트리에 ..? 대소 문자 구분 문제가 여기에 있습니다.FirstOrDefault()
쓰다First()
FirstOrDefault () 대신 First를 사용하는 이유 - MethodMan