2013-02-06 1 views
1

를 사용하여 레지스트리에서 MachineGuid을 읽는 방법. 나는 후 오전 레지스트리 키는 마이크로 소프트 \ 암호화 \ MachineGuid내가 이노 설치 파스칼 스크립트 기능 RegQueryStringValue를 사용하여 Windows 레지스트리에서 GUID 기계를 읽기 위해 노력하고 이노 설정 파스칼 스크립트

procedure StoreHwID(); 
    var 
    HwId: String; 

begin 
    RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Cryptography','MachineGuid', HwId); 
    MsgBox('Value is "' + HwId + '"', mbInformation, MB_OK); 
end; 

이것은 HWID 변수에 값을 설정하는 데 실패 \ HKEY_LOCAL_MACHINE \ 소프트웨어입니다.

무엇이 누락 되었습니까?

답변

3

InnoSetup은 32 비트 프로세스입니다. 64 비트 OS에서 실행중인 경우 HKEY_LOCAL_MACHINE 대신 HKEY_LOCAL_MACHINE_64을 사용하여 64 비트 레지스트리를 지정해야합니다. 두 개의 RegQueryStringValue 통화가 필요할 수 있습니다. 하나는 64 비트 용이고 다른 하나는 32 비트 용입니다.

+0

두 번 호출 할 필요가 없습니다. HK ** 값은 실제로는 정수입니다. IsWin64()를 사용하여 64 비트인지 여부를 확인하고 정수 변수에 관련 값을 저장 한 다음 호출의 첫 번째 매개 변수에 해당 값을 사용하면됩니다. – Nyerguds