Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/39: Рейтинг темы: голосов - 39, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 19.09.2007
Сообщений: 15
1

Как изменить имя ключа реестра???

26.09.2007, 17:16. Показов 7746. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
...собственно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2007, 17:16
Ответы с готовыми решениями:

Как программно изменить значение ключа реестра, если нет прав на доступ?
Здравствуйте. Написал просмотрщик графики, хочу добавить в него единственную настройку - установку...

Как изменить имя ключа в коллекции?
Есть коллекция Dictionary<String, Process> PrcDic; (Process - самодельный класс). А как...

Изменить имя пользователя через редактирование реестра
Подскажите как изменить имя существующего пользователя через реестр, или как еще можно изменить не...

Проверка наличия определённого ключа реестра и добавление этого ключа в реестр при его отсутствии
Добрый день! Пытаюсь разобраться с bat файлом, который будет запускаться при старте системы и...

15
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
26.09.2007, 17:51 2
ну вот пример:
long lp=0;
HKEY Handle;
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", 0, KEY_ALL_ACCESS, &Handle);
unsigned char res[4] = {0, 0, 0, 0};
RegSetValueEx(Handle, "AutoRestartShell", 0, REG_DWORD, res, 4);
RegCloseKey(Handle);
EnumWindows((WNDENUMPROC)EnumProc,lp);
0
0 / 0 / 0
Регистрация: 19.09.2007
Сообщений: 15
27.09.2007, 14:05  [ТС] 3
О спасибо большое, а как изменить имя значения? =)
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
27.09.2007, 14:24 4
глянь в апишных функциях, сам точно не знаю
0
0 / 0 / 0
Регистрация: 19.09.2007
Сообщений: 15
27.09.2007, 14:25  [ТС] 5
нету там, поэтому и спрашиваю
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
27.09.2007, 14:52 6
есть подозрение, что тут надо старый ключ килять, а новый создавать
0
0 / 0 / 0
Регистрация: 19.09.2007
Сообщений: 15
28.09.2007, 12:08  [ТС] 7
я тот код вставил в проект, там непрописана переменная EnumProc нигде, какого она типа должна быть?
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
28.09.2007, 12:41 8
пардон, моя вина, не все скопировал:
bool __stdcall EnumProc(HWND hWnd,/*LPARAM*/long/*lp*/);
0
0 / 0 / 0
Регистрация: 19.09.2007
Сообщений: 15
28.09.2007, 13:33  [ТС] 9
чёт, нехочет =(
error LNK2019: unresolved external symbol "bool __stdcall EnumProc(struct HWND__ *,long)" (?EnumProc@@YG_NPAUHWND__@@J@Z) referenced in function _wmain
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
28.09.2007, 14:08 10
тебе она не надо, это просто функция киляет Explorer, из проги пример вырвал, последняя строчка не нужна:

if(isHideExplorer){
long lp=0;
HKEY Handle;
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", 0, KEY_ALL_ACCESS, &Handle);
unsigned char res[4] = {0, 0, 0, 0};
RegSetValueEx(Handle, "AutoRestartShell", 0, REG_DWORD, res, 4);
RegCloseKey(Handle);
EnumWindows((WNDENUMPROC)EnumProc,lp); // ремарь ее, она не по теме
}
0
0 / 0 / 0
Регистрация: 19.09.2007
Сообщений: 15
01.10.2007, 11:24  [ТС] 11
блин , всё равно не пойму, этот кусок просто создает параметр, а ключ не переименовывает.
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
01.10.2007, 19:00 12
так он меняет значение,а не переименовывает, переименовать видать можно удалением старого ключа и созданием нового
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
02.10.2007, 10:18 13
я тут по инету порылся, вот что пишут умные люди:

Как переименовать ключ в реестре?
Автор: Александр Шаргин
Опубликовано: 18.02.2001
Исправлено: 13.03.2005
Версия текста: 1.0
К сожалению, в Win32 API нет функции, которая выполняла бы переименование ключа в реестре. Если проследить, каким образом редактор regedit.exe переименовывает ключ, нетрудно убедиться, что он просто копирует заданный ключ на новое место, а затем удаляет его на старом. Этой же стратегией можем воспользоваться и мы. В самом крупном приближении требуемая функция выглядит так.

RenameKey(HKEY hParentKey, LPCTSTR szSrc, LPCTSTR szTarg)
{
// Копируем szSrc в szTarg.
// Удаляем szSrc.
}


Копирование ключей в реестре подробно рассмотрено в статье "Как скопировать ключ в реестре?", а удаление ключей - в статье "Как удалить ключ из реестра?". Нам остаётся только воспользоваться функциями CopyKey и DeleteKey, описанными в этих статьях. При этом функция RenameKey приобретает следующий вид.

LONG DeleteKey(HKEY hParentKey, LPCTSTR szKey);
LONG CopyKey(HKEY hSrcParent, HKEY hTargParent, LPCTSTR szSrcKey, LPCTSTR szTargKey);

RenameKey(HKEY hParentKey, LPCTSTR szSrc, LPCTSTR szTarg)
{
LONG nRes = CopyKey(hParentKey, hParentKey, szSrc, szTarg);
if(nRes != ERROR_SUCCESS)
return nRes;

return DeleteKey(hParentKey, szSrc);
}


В качестве примера использования этой функции рассмотрим код, который изменяет имя ключа "Some key" из раздела HKEY_LOCAL_MACHINE на "Yet another key".

RenameKey(HKEY_LOCAL_MACHINE, "Some key", "Yet another key");
0
0 / 0 / 0
Регистрация: 19.09.2007
Сообщений: 15
02.10.2007, 15:27  [ТС] 14
Спасибо, а ссылку на источник можно? а то я знаю как удалить ключ... =)
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
02.10.2007, 16:16 15
http://rsdn.ru/?summary/126.xml - статья с этого сайта, поищи тут
0
0 / 0 / 0
Регистрация: 19.09.2007
Сообщений: 15
02.10.2007, 16:18  [ТС] 16
уже нашёл, ещё раз спасибо.
0
02.10.2007, 16:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2007, 16:18
Помогаю со студенческими работами здесь

Как произвести проверку ключа реестра?
Как произвести проверку ключа реестра? Т.е Если существуете такой то ключ, с таким то значением,...

Как достать из массива метод имя которого в виде ключа
Здравствуйте. Уважаемые форумчане, подскажите. Есть массив с именами методов класса. Что-то...

Изменение ключа реестра
Добрый день, подскажите пожалуйста как редактировать ключ реестра так, что бы время демоверсии...

Чтение ключа реестра
Необходимо написать функцию или процедуру, которая бы считывала ключ из реестра, и при запуске...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru