Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запись в реестр, Код есть, хочу найти неисправность 
:(
    Опции темы
Nelkor
Дата 4.7.2014, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 4.7.2014

Репутация: нет
Всего: нет



Всем привет!
Столкнулся с такой проблемой - вот код на C++:

Код

#include <Windows.h>
 
int WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    char* keyPath = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon";
    char* szString = "test string";
 
    HKEY hKey;
 
    if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, keyPath, 0, KEY_ALL_ACCESS, &hKey) != ERROR_SUCCESS) return 1;
    if (RegSetValueEx(hKey, "Shell", 0, REG_SZ, (BYTE*)szString, sizeof(szString)) != ERROR_SUCCESS) return 2;
    if (RegCloseKey(hKey) != ERROR_SUCCESS) return 3;
    
    return 0;
}


И он не работает! А что самое интересное - программа завершается с кодом "0" , а это значит, что она открывает ключ, изменяет его значение и закрывает ключ без ошибок. НО! Ничего не происходит, изменений в реестре по указанному ключу нет :(
Я вообще ничего не понимаю :(

Прав должно хватать, ибо руками со своей учетки я могу там менять значения. Да и если бы не хватало прав, программа бы не завершалась с кодом "0".

Это сообщение отредактировал(а) Nelkor - 4.7.2014, 19:47
PM MAIL   Вверх
volatile
Дата 4.7.2014, 20:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Цитата(Nelkor @  4.7.2014,  19:45 Найти цитируемый пост)
 sizeof(szString)) 

извечная ошибка начинающих.
исправьте для начала

sizeof(szString) - это размер указателя, а не строки.

PM MAIL   Вверх
feodorv
Дата 4.7.2014, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 11
Всего: 45



А какая у Вас операционка (подозреваю, x64)?
А компилите Вы для x32?
Тогда все Ваши изменения уходят в ветку HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ Windows NT\CurrentVersion\Winlogon, проверьте...

ЗЫ Не нравится мне сам вопрос (но не постановка вопроса), хакерством отдаёт  smile 


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
EgoBrain
Дата 7.7.2014, 03:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



smile 
feodorv, ага, особенно когда чувак пишет в ветке Win32API "Как мне перечислить все антивирусы в системе? Как их отключить?". Или вот эта тема особенно позобавила, автор даже не попытался свой замысел заувалировать, скоро будут создавать темы в разделе помощи "Как написать программы крадущую пинкоды от банковских карт"  smile

Добавлено через 7 минут и 25 секунд
Чтобы было что-то в тему:
Цитата

 if (RegSetValueEx(hKey, "Shell", 0, REG_SZ, (BYTE*)szString, sizeofstrlen(szString)) != ERROR_SUCCESS) return 2;

Еще можно для порядка:
char* szString = "test string\0";

PM MAIL ICQ Skype   Вверх
volatile
Дата 7.7.2014, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Цитата(EgoBrain @ 7.7.2014,  03:28)
, sizeofstrlen(szString) +1 ) != ERROR_SUCCESS) return 2;


Это лишнее:
Цитата(EgoBrain @ 7.7.2014,  03:28)
Еще можно для порядка:
char* szString = "test string\0";


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0479 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.