0
A
回答
2
唯一的方法是枚舉值爲RegEnumValue()
,並使用RegDeleteValue()
單獨刪除它們。
或者如果密鑰沒有任何子密鑰,只需遞歸刪除整個密鑰,然後重新創建父密鑰。
編輯:這是一個基本的例程來說明如何枚舉和刪除鍵中的值(它只有最小的錯誤檢查)。
DWORD dwNumValues, dwValueNameLen;
if (RegQueryInfoKey(hKey, 0, 0, 0, 0, 0, 0,
&dwNumValues, &dwValueNameLen, 0, 0, 0) == ERROR_SUCCESS)
{
TCHAR* tchValName = new TCHAR[dwValueNameLen + 1];
for (int i = dwNumValues - 1; i >= 0; --i)
{
DWORD dwLen = dwValueNameLen + 1;
if (RegEnumValue(hKey, i, tchValName, &dwLen, 0, 0, 0, 0) == ERROR_SUCCESS)
RegDeleteValue(hKey, tchValName);
}
delete[] tchValName;
}
相關問題
- 1. 刪除註冊表鍵值
- 2. 刪除特定註冊表項下的所有值
- 3. 刪除註冊表值
- 4. 註冊表刪除值
- 5. 沒有@刪除所有行註冊
- 6. 刪除頑固的註冊表項
- 7. Powershell:刪除包含字符串的所有註冊表項
- 8. 如何刪除註冊表中的值?
- 9. 使用reg刪除註冊表項刪除
- 10. 註冊表項刪除錯誤
- 11. 通過cmd刪除註冊表項
- 12. 問題刪除註冊表項
- 13. WIX removefiles和Windows刪除註冊表項
- 14. 獲取註冊表項刪除權限
- 15. Powershell - 刪除(默認)註冊表項?
- 16. 註冊表項:刪除錯誤
- 17. 如何刪除註冊表項?
- 18. 從註冊表中刪除DB2INSTDEF值
- 19. 如何刪除註冊表值?
- 20. 從Windows註冊表中刪除InProgress註冊表項
- 21. 刪除所有相冊?
- 22. 使用批處理刪除註冊表項及其子項
- 23. 卸載程序不刪除註冊表
- 24. 從註冊表中刪除服務從Windows服務器刪除註冊表
- 25. 刪除值,而不刪除重複
- 26. SQL:刪除子樹表(ID,PARENTID),刪除一個項目,他所有的孩子
- 27. 手動刪除損壞的註冊表項沒有顯示註冊表
- 28. 如何在不刪除註冊表中的密鑰的情況下在卸載時修改註冊表項值?
- 29. 註冊表問題 - 使用C++刪除鍵/值
- 30. 編輯/刪除受保護的註冊表項值
非常感謝Jonathan。我是否認爲我必須做一個For或者While來加入這兩個功能。我對嗎? –
我已經添加了一些如何枚舉和刪除值的示例代碼。 –
太棒了!非常感謝! –