2009-09-25 6 views
2

키와 값을 RegSetValueExA을 사용하여 레지스트리 항목에 이미 설정하고 만들어졌습니다. 하지만 지금은 레지스트리 항목에서 그 키와 값을 삭제하고 싶습니다. 그리고 나는 RegDeleteKey을 사용하고 있습니다. 그러나 "시스템은 지정된 파일을 찾을 수 없습니다."라는 오류 2는 어떻게 해결할 수 있는지 말해 줄 수 있습니까?레지스트리 항목에서 레지스트리 값과 키를 제거하는 방법

+0

코드를 게시 할 수 있습니까? 우리가 당신이 어떤 기능을 전달하는지 모른다면 당신을 도울 수 없습니다. –

답변

1

레지스트리 키에 하위 키가 있습니까? RegDeleteKey은 재귀 적 삭제를 수행하지 않습니다. Vista + 용으로 작성하는 경우 RegDeleteTree을 사용할 수 있습니다. 그렇지 않으면 재귀 적 삭제를 코딩해야하지만 MSDN에 예제 코드가 있습니다.

shlwapi.dll에서 SHDeleteKey을 사용할 수도 있습니다.

4

코드를 모두 표시 할 수 있습니까? 여기있는 사람이 문제를 좁히는 데 도움이되지 않습니다.

만약 제가 짐작할 수 있겠지만, 지정된 방법으로 잘못된 점이 있습니다. LPCTSTR lpSubKey RegOpenKeyEx 또는 RegDeleteKey.

예 :

당신이 만든 경우 키

RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Software", 0, KEY_ALL_ACCESS, &RegHandle) 
RegDeleteKey(RegHandle, test) 

또는

RegOpenKeyEx(HKEY_LOCAL_MACHINE, someNullValue, 0, KEY_ALL_ACCESS, &RegHandle) 
RegDeleteKey(RegHandle, L"Software\\test") 
:

HKEY_LOCAL_MACHINE\Software\Test 

를 삭제하기 위해, 당신은 같은 것을 필요

MSDN에서 기능을 다시 확인하십시오.

RegDeleteKey RegOpenKeyEx

1

두 가지 오류 2 /를 확인하기 위해 "파일을 찾을 수 없습니다"

  • 는 대신 실제 키의 키 내에서 "값"아니다 있는지 확인합니다. 당신이 HKCU> 소프트웨어> 회사 이름과 같은 폴더를 만든 다음 RegSetValueEx와 옵션 = "foo는"같은 값을 저장하는 경우

는, 당신은 RegDeleteValue 또는 RegDeleteValueEx 이것을 삭제해야합니다.

  • 64 비트 OS 인 경우 32 비트 대 64 비트의 별도 레지스트리보기가 있습니다. 기본적으로 32 비트 앱은 32 비트보기를 모든 용도로 사용하지만 어떤 이유로 KEY_WOW64_64KEY를 사용하여 항목을 만든 경우 삭제할 때 사용해야합니다.
관련 문제