|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Реестр - копирование всего в другой |
|
[решено] Реестр - копирование всего в другой
|
![]() Старожил Сообщения: 467 |
Прошу показать пример на конкретной задачи:
Нужно скопировать раздел "HKEY_LOCAL_MACHINE\SOFTWARE\Diskeeper Corporation\" в "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Diskeeper Corporation\" с перезаписью всех существующих параметров. Кто поможет? |
|
------- Отправлено: 15:26, 12-12-2009 |
![]() Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать А консольные команды ни кто не отменял
![]() REG COPY /? - справка по команде. |
Отправлено: 16:08, 12-12-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Расширенная библиотека для работы с реестром
Пример с её использованием: #include <Array.au3> #include <Registry_UDF.au3> $aArr = _RegEnumKeys2Array("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run") For $i = 1 To $aArr[0][0] $sPath = StringRegExpReplace($aArr[$i][0], "\\Run\\", "\\Run_Test\\") ;Копируем в Run_Test $sPath = StringRegExpReplace($sPath, "\\[^\\]*$", "") $sKey = StringRegExpReplace($aArr[$i][0], "^.*\\", "") $sKey = StringReplace($sKey, "!", "! ") ;этот символ на конце почему то блокирует запись $sRet = RegWrite($sPath, $sKey, $aArr[$i][2], $aArr[$i][1]) Next |
------- Отправлено: 23:09, 12-12-2009 | #3 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать может вместо копирования создать символическую ссылку на нужный ключ реестра?
|
Отправлено: 04:05, 15-12-2009 | #4 |
![]() Старожил Сообщения: 467
|
Профиль | Отправить PM | Цитировать Creat0R, спасибо, ваш вариант работает идеально.
|
|
------- Отправлено: 19:42, 28-12-2009 | #5 |
![]() Старожил Сообщения: 206
|
Профиль | Отправить PM | Цитировать IMHO так быстрее и надежнее.
Global Const $HKEY_LOCAL_MACHINE = 0x80000002 $hKey = _WinAPI_RegCreateKey($HKEY_LOCAL_MACHINE, 'SOFTWARE\Wow6432Node\Diskeeper Corporation') _WinAPI_RegCopyTree($HKEY_LOCAL_MACHINE, 'SOFTWARE\Diskeeper Corporation', $hKey) _WinAPI_RegCloseKey($hKey) Func _WinAPI_RegCloseKey($hKey) Local $Ret = DllCall('advapi32.dll', 'long', 'RegCloseKey', 'ulong_ptr', $hKey) If @error Then Return SetError(1, 0, 0) Else If $Ret[0] Then Return SetError(1, $Ret[0], 0) EndIf EndIf Return 1 EndFunc ;==>_WinAPI_RegCloseKey Func _WinAPI_RegCopyTree($hSrcKey, $sSrcSubKey, $hDestKey) Local $Ret = DllCall('shlwapi.dll', 'long', 'SHCopyKeyW', 'ulong_ptr', $hSrcKey, 'wstr', $sSrcSubKey, 'ulong_ptr', $hDestKey, 'dword', 0) If @error Then Return SetError(1, 0, 0) Else If $Ret[0] Then Return SetError(1, $Ret[0], 0) EndIf EndIf Return 1 EndFunc ;==>_WinAPI_RegCopyTree Func _WinAPI_RegCreateKey($hKey, $sSubKey = '', $iDesired = 0xF003F, $iOptions = 0, $tSecurity = 0) Local $Ret = DllCall('advapi32.dll', 'long', 'RegCreateKeyExW', 'ulong_ptr', $hKey, 'wstr', $sSubKey, 'dword', 0, 'ptr', 0, 'dword', $iOptions, 'dword', $iDesired, 'ptr', DllStructGetPtr($tSecurity), 'ulong_ptr*', 0, 'dword*', 0) If @error Then Return SetError(1, 0, 0) Else If $Ret[0] Then Return SetError(1, $Ret[0], 0) EndIf EndIf Return SetError(0, Number($Ret[9] = 1), $Ret[8]) EndFunc ;==>_WinAPI_RegCreateKey |
Отправлено: 01:39, 30-12-2009 | #6 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Тут важно чтобы приложения были 64-битными, иначе некорректно может отображаться реестр.
|
------- Отправлено: 22:11, 30-12-2009 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Доступ - как мне для студента закрыть доступ на другой локальный диск, закрыть доступ к реестр | nisan | Microsoft Windows 2000/XP | 10 | 12-09-2009 21:14 | |
CMD/BAT - [решено] Поиск каталога и копирование всего его содержимого | desk | Скриптовые языки администрирования Windows | 4 | 01-07-2009 14:28 | |
C/C++ - [решено] Всего один цикл | Balbec | Программирование и базы данных | 4 | 16-05-2008 15:09 | |
Разное - [решено] Всего один вопрос =) | Balbec | Программирование и базы данных | 2 | 14-05-2008 12:56 | |
[решено] Копирование WIN98 с одного ж.диска на другой | Evgen77 | Microsoft Windows 95/98/Me (архив) | 21 | 06-12-2006 00:22 |
|