Я учусь C и пытаюсь сделать приложение, которое изменит Войти фоновый экран для Windows 7.Изменение значений реестра в C
Я знаю, что мне нужно изменить некоторые параметры реестра (инструкции, чтобы сделать это без программирование здесь: http://helpdeskgeek.com/windows-7/change-the-windows-7-login-screen-background-image/)
Поэтому я знаю, чтобы изменить значение в реестре, мне нужно создать дескриптор открытого значения, а затем изменить его.
Это то, что я до сих пор:
char* number = 0x00000001;
HKEY key;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Authentication\\LogonUI\\Background"), 0, KEY_SET_VALUE, &key) == ERROR_SUCCESS){
printf("Key location open successful \n");
if (RegSetValueEx(key, "OEMBackground", 0, REG_DWORD, (LPBYTE)&number, sizeof(DWORD))){
printf("Key not changed in registry \n");
printf("Error %d ", GetLastError());
}
else{
printf("Key changed in registry \n");
}
RegCloseKey(key);
}
else {
printf("Unsuccessful in opening key \n");
printf("Cannot find key value in registry \n");
printf("Error: %d ", GetLastError());
}
Результаты я имею сказать, что ключ открыт, и что значение было изменено. Но значение не изменяется.
значение в реестре в настоящее время 0. Я хочу, чтобы изменить его на 1.
Что я здесь делаю неправильно?
Звучит лучше, чем мой ответ, в любом случае. Особенно это касается 4. В разговоре говорится, что это удалось, поэтому вряд ли будут права/привилегии, 'cos, которые бы вернули' ERROR_ACCESS_DENIED ', (предположительно :). –
@MartinJames Если процесс виртуализирован, то он будет успешным без повышения. Я считаю, что 1, 3 и 4 все –
1. Выполнено 2. ERROR_SUCCESS в соответствии с документами MSDN - это то, что возвращается, если метод является успешным. 3. Что такое манифест? Не могли бы вы подробнее рассказать об этом. 4. Заменяет ли это 'KEY_SET_VALUE «Я поставил оба в использовании. Между ними. Тем не менее, все еще не изменилось. – user2070229