C++을 사용하여 레지스트리에서 키의 이름을 바꾸는 방법은 무엇입니까?레지스트리 - C++을 사용하여 레지스트리에서 키의 이름을 바꾸는 방법은 무엇입니까?
키 "Myapp \ Version1"의 이름을 "Myapp \ Version2"로 변경하고 싶습니다.
MSDN에서 레지스트리의 키 이름을 변경하는 기능이 표시되지 않습니다.
C++을 사용하여 레지스트리에서 키의 이름을 바꾸는 방법은 무엇입니까?레지스트리 - C++을 사용하여 레지스트리에서 키의 이름을 바꾸는 방법은 무엇입니까?
키 "Myapp \ Version1"의 이름을 "Myapp \ Version2"로 변경하고 싶습니다.
MSDN에서 레지스트리의 키 이름을 변경하는 기능이 표시되지 않습니다.
이전 버전의 Windows에서는 이름을 바꾸는 기능이 없으므로 직접 AFAIK에서 복사/삭제해야합니다. 당신은 XP를 지원해야하는 경우
감사합니다. ander :) – Jasmin25
앱에 Vista 또는 최신 버전의 Windows가 필요한 경우 RegCopyTree() 다음에 RegDeleteTree()을 사용할 수 있습니다.
감사합니다 Ferruccio, 내가 구현할 것입니다 :) – Jasmin25
, 나는이 오래된 항목입니다 알고 있지만 경우 사람에서 다른 사람,보고 온다 SHCopyKey이 RegDeleteKeyEx
32 비트 XP에서는'RegDeleteKeyEx'를 사용할 수 없습니다. 거기에는'RegDeleteKey'를 사용하는 옵션 하나만 있습니다. – c00000fd
다음에 사용할 수 this MSDN page에서
, 사람 ... 나 같은 Vista에서 구할 수있는 문서화되지 않은 RegRenameKey(hKey, keyName, newKeyName)
을 발견했습니다.
이 오래된 항목에 대한 일부 추가 정보를 원하시면 :
NTRenameKey() 레지스트리 키의 이름을 변경하는 오래된 API입니다.
또한 Pavel에는 randomsock의 대답에서 언급 한 RegRenameKey() 호출에 대한 자세한 정보가 있습니다. (이것은 C++ 질문이지만)이 멋진 PInvoke 서명을 제공합니다.
[DllImport("advapi32")]
public static extern int RegRenameKey(
SafeRegistryHandle hKey,
[MarshalAs(UnmanagedType.LPWStr)] string oldname,
[MarshalAs(UnmanagedType.LPWStr)] string newname);
레지스트리에서 MyApp 아래의 버전 문자열을 저장할 수 있습니다. 그런 다음 이름 바꾸기 또는 복사 및 삭제 대신 버전 문자열의 값을 업데이트하면됩니다. – xian