0 / 0 / 0
Регистрация: 19.09.2007
Сообщений: 15
|
|
1 | |
Как изменить имя ключа реестра???26.09.2007, 17:16. Показов 7746. Ответов 15
Метки нет (Все метки)
0
|
26.09.2007, 17:16 | |
Ответы с готовыми решениями:
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 | |
02.10.2007, 16:18 | |
Помогаю со студенческими работами здесь
16
Как произвести проверку ключа реестра? Как достать из массива метод имя которого в виде ключа Изменение ключа реестра Чтение ключа реестра Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |