문제

안녕하세요 저는 Firefox.exe로가는 길을 제공하는 레지스트리 값을 읽으려고합니다. 이것은 아래에 저장됩니다

HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox 3.0.10\bin

(버전 번호는 다른 곳에서 찾을 수 있습니다)

그러나 나는 regopenkeyex가 error_success를 반환하도록하는 것 같다.

HKEY_LOCAL_MACHINE

따라서이 테스트는 실패합니다.

if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,TEXT("\\SOFTWARE"),0,KEY_QUERY_VALUE,&keyHandle) == ERROR_SUCCESS)

이 테스트가 통과하는 동안 :

if(RegOpenKeyEx(HKEY_CLASSES_ROOT,TEXT("\\Shell"),0,KEY_QUERY_VALUE,&keyHandle) == ERROR_SUCCESS)
도움이 되었습니까?

해결책

오류 코드 161을 사용하여 내 컴퓨터에서 다음 코드가 실패했습니다. 이는 "나쁜 경로"를 의미합니다 (Winerror.h에서 찾아보십시오) :

long n = RegOpenKeyEx(HKEY_LOCAL_MACHINE,TEXT("SOFTWARE"),
                      0,KEY_QUERY_VALUE, &hk );

그런 다음 "소프트웨어"를 사용하기 위해 regopenkeyEx로 호출을 변경했으며 (주연 슬래시 없음) 작동했습니다.

#include <windows.h>
#include <iostream>
using namespace std; 

int main() {
    HKEY hk;

    // Notice that it's SOFTWARE instead of \\SOFTWARE:
    long n = RegOpenKeyEx(HKEY_LOCAL_MACHINE,TEXT("SOFTWARE"),
                      0,KEY_QUERY_VALUE, &hk );
    if ( n == ERROR_SUCCESS ) {
        cout << "OK" << endl;
    }
    else {
        cout << "Failed with value " << n << endl;
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top