Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для IVIakCollideR
40 / 40 / 14
Регистрация: 26.12.2013
Сообщений: 309

Открыть реестр Windows7

16.03.2014, 20:43. Показов 2016. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
привет, попробую задать эту тему здесь,
с++ не знаю, среда есть dev c++.

Мне нужно открыть реестр и поменять значение в нем, как это можно сделать?
дайте примерчик какой то, понятный, обрыл весь гугль.

Пробовал так но полезли ошибки компиляции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <cstdlib>
#include <iostream>
#include <Windows.h>
#include <tchar.h>
 
using std::cout;
using std::endl;
 #ifdef _UNICODE
#  define _tcout wcout
#else
#  define _tcout cout
#endif // _UNICODE
 
int _tmain(int argc, _TCHAR* argv[]){
  _tsetlocale(LC_ALL, _T("Russain"));
  _TCHAR szTestString[] = _T("4");
  _TCHAR szPath[] = _T("SYSTEM\CurrentControlSet\services\USBSTOR\\");
  HKEY hKey;
  
  if(RegOpenKeyEx (HKEY_LOCAL_MACHINE, szPath, NULL, NULL, &hKey) != ERROR_SUCCESS){
    _tcout << _T("error") << endl;
    return 1;
  }
 
  if(RegSetValueEx(hKey, _T("Start"), 0, REG_SZ, (BYTE*)szTestString, sizeof(szTestString)) != ERROR_SUCCESS){
    _tcout << _T("error") << endl;
    return 2;
  }
 
  if(RegCloseKey(hKey) != ERROR_SUCCESS){
    _tcout << _T("error") << endl;
    return 3;
  };
 
  return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.03.2014, 20:43
Ответы с готовыми решениями:

RegOpenKeyEx(). Не получается открыть реестр
HKEY hKey; RegOpenKeyEx(HKEY_LOCAL_MACHINE, LPCWSTR(&quot;SOFTWARE&quot;), 0, KEY_READ, &amp;hKey); Функция возвращает 2. В чём...

Не могу открыть реестр через RegOpenKeyEx
Приветствую. В продолжении начатой темы https://www.cyberforum.ru/assembler-windows/thread2531640.html выделилась отдельная проблема. И...

Открыть реестр Windows прямо из Notepad++
здравствуйте, создал файл .bat (regjump.bat) D:\Program\Notepad++\notepad++.exe % 1 в NppExec ввел и сохранил команду ...

3
 Аватар для IVIakCollideR
40 / 40 / 14
Регистрация: 26.12.2013
Сообщений: 309
17.03.2014, 21:45  [ТС]
все еще актуально
0
Maniac
Эксперт С++
 Аватар для ISergey
1465 / 966 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
18.03.2014, 14:58
Лучший ответ Сообщение было отмечено IVIakCollideR как решение

Решение

C
1
_T("SYSTEM\CurrentControlSet\services\USBSTOR\\");
По поводу ошибок компиляции
Первое что в глаза бросается.. Должны быть двойные "\\".
Так
C
1
_T("SYSTEM\\CurrentControlSet\\services\\USBSTOR\\");

C++
1
2
3
4
5
6
7
8
using std::cout;
using std::wcout; //!
using std::endl;
#ifdef _UNICODE
#  define _tcout wcout
#else
#  define _tcout cout
#endif // _UNICODE
Дальше в функции RegOpenKeyEx не указано с какими правами открывать ветку. если нужно что то записать, то вызываем ее примерно так
C
1
RegOpenKeyEx (HKEY_LOCAL_MACHINE, szPath, NULL, KEY_WRITE, &hKey)
Без прав администратора у приложения ничего не получится.
И на последок это значение _T("Start") должно быть REG_DWORD (Хотя практика показывает что системе глубоко до одного места на тип данных, главное чтобы валидные были.. )
В результате так должно работать
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <cstdlib>
#include <iostream>
#include <Windows.h>
#include <tchar.h>
 
// using std::cout;
// using std::endl;
#ifdef _UNICODE
#  define _tcout wcout
#else
#  define _tcout cout
#endif // _UNICODE
 
int _tmain(int argc, _TCHAR* argv[]){
    _tsetlocale(LC_ALL, _T("Russain"));
    DWORD regData = 4;
    _TCHAR szPath[] = _T("SYSTEM\\CurrentControlSet\\services\\USBSTOR\\");
    HKEY hKey;
 
    if(RegOpenKeyEx (HKEY_LOCAL_MACHINE, szPath, NULL, KEY_WRITE, &hKey) != ERROR_SUCCESS){
        std::_tcout << _T("error1") << std::endl;
        return 1;
    }
 
    if( RegSetValueEx(hKey, _T("Start"), 0, REG_DWORD, (BYTE*)&regData, sizeof(regData)) != ERROR_SUCCESS){
        std::_tcout << _T("error2: ") << std::endl;
        return 2;
    }
 
    if(RegCloseKey(hKey) != ERROR_SUCCESS){
        std::_tcout << _T("error3") << std::endl;
        return 3;
    };
 
    return 0;
}
1
 Аватар для IVIakCollideR
40 / 40 / 14
Регистрация: 26.12.2013
Сообщений: 309
20.03.2014, 18:53  [ТС]
ISergey, ура) спасибо что откликнулся, ты просто гений, все работает)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.03.2014, 18:53
Помогаю со студенческими работами здесь

При загрузке системы открывается cmd + Chrome и еще заметил что нельзя открыть реестр
логи)

VirtualBox: можно ли установить гостевую Windows7 под хостовой системой Windows7?
можно ли установить Virtual Box с операционкой Windows 7 в реальную среду Windows 7 чтобы работать в виртуалке и ничего не повредить в...

После переустановки Windows7 максимальная на Windows7 professional не работают USB выходы
После переустановки Windows7 максимальная на Windows7 professional не работают USB выходы Ноутбук ASUS X551M стоояла на нем Windows 8...

Необязательные обновления в Windows7. Обновление драйверов для видеокарты NVIDIA GeForce GTX 285 в Windows7
Недавно приобрел новый компьютер с ОС Windows7. Как быть с НЕОБЯЗАТЕЛЬНЫМ ОБНОВЛЕНИЕМ для Windows7, точнее для видеокарты NVIDIA GeForce...

Реестр и еще раз реестр
На буке стоит обычная хпшка, подключен вайфай, где записан пароль этого вифи? при подключении одни звездочки или смена пароля, подскажите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "АккумуляторыИШины", разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого. . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru