Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Не могу записать данные в реестр


Автор: Verus 27.1.2009, 21:07
Код

CRegKey key;
key.Create(HKEY_CURRENT_USER,"\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\MyKey");
key.Close();

Где ошибка? Подскажите пожалуйста smile

Автор: Rififi 27.1.2009, 22:00
(с) msdn

Return Value
If successful, returns ERROR_SUCCESS and opens the key. If the method fails, the return value is a nonzero error code defined in WINERROR.H.

Проверяй код ошибки.

Автор: Verus 28.1.2009, 10:04
Код

CRegKey key;
LONG err_code = key.Create(HKEY_CURRENT_USER,"HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\MyKey");
cout<<err_code<<endl;
key.Close();

Пишу так, код ошибки 0, но ключа в реестре не вижу :(

Автор: Verus 28.1.2009, 10:09
Код

CRegKey key;
LONG err_code = key.Create(HKEY_CURRENT_USER,"HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\MyKey");
cout<<err_code<<endl;
key.Close();

Пишу так, код ошибки 0, но ключа в реестре не вижу :(

Автор: Verus 28.1.2009, 10:38
Сорри, написал два раза, инет лагает.

Автор: GoldFinch 28.1.2009, 12:39
юзай апи, там все прозрачно

Автор: Verus 28.1.2009, 13:19
Вот взят код из MSDN, но все получается тоже самое, код ошибки 0 в обоих случаях, а ключа реестра нет.
Код

HKEY hk; 
DWORD dwDisp; 
int err_code = RegCreateKeyEx(HKEY_CURRENT_USER, "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\MyKey", 
           0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hk, &dwDisp); 
cout<<err_code<<endl;

DWORD dwData = 1;
err_code = RegSetValueEx(hk,      // subkey handle 
           "TypesSupported",  // value name 
           0,                 // must be zero 
           REG_DWORD,         // value type 
           (LPBYTE) &dwData,  // pointer to value data 
           sizeof(DWORD));
cout<<err_code<<endl;

Автор: Alek86 28.1.2009, 13:35
Verus, ты 2 раза копируешь HKEY_CURRENT_USER в вызове функции
а нужно примерно так
Код

RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run\\MyKey",...

Автор: Verus 28.1.2009, 13:39
Пробовал и тот и тот вариант. Эффекта никакого :(

Автор: Alek86 28.1.2009, 13:49
можно запустить это:
http://msdn.microsoft.com/en-us/library/aa363634(VS.85).aspx
а потом, если оно сработает, постепенно менять код на нужный тебе

Автор: Verus 28.1.2009, 14:03
Спасибо, все заработало. Раньше пробовал этот код, видимо что-то не то вводил smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)