#c #registry
#c #реестр
Вопрос:
Я использую этот код для изменения нового (перезаписывания) MachineGuid в реестре
HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptography
Но я не могу его изменить. Я могу изменить HwProfileGuid в
SYSTEM CurrentControlSetControlIDConfigDBHardware Profiles001
но не этот.
HKEY hKey_;
LPCTSTR sk_MachineGuid = TEXT("SOFTWARE\Microsoft\Cryptography");
RegOpenKeyEx(HKEY_LOCAL_MACHINE, sk_MachineGuid, 0, KEY_ALL_ACCESS, amp;hKey_);
LPCTSTR val_MachineGuid = TEXT("MachineGuid");
SetStringValue(hKey_, val_MachineGuid, w_MachineGuid /* generated MachineGuid */);
RegCloseKey(hKey_);
Кто-нибудь, кто может мне помочь, пожалуйста?
Комментарии:
1. Вы должны тестировать коды возврата для этих функций Windows API. Каждая из этих функций возвращает код возврата. Ссылка гласит: если функция завершается с ошибкой, возвращаемое значение является ненулевым кодом ошибки, определенным в Winerror.h . Вы можете использовать функцию FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM, чтобы получить общее описание ошибки.
2. я сделал это, и я получил ERROR_SUCCESS. Таким образом, не было никаких проблем с установкой нового значения.. Но значение не было заменено.. Так странно @PaulMcKenzie
3. @0xM3G4 Вы случайно не говорите, является ли это 32-разрядной компиляцией, и вы не показываете
val_MachineGuid
, илиSetStringValue
.