|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как получить имя ветки реестра? |
|
|
[решено] Как получить имя ветки реестра?
|
Пользователь Сообщения: 80 |
Профиль | Отправить PM | Цитировать хочу поменять DNS на удаленном компе.
RegWrite("\\10.167.32.100\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Inte rfaces\{E5B0E6CF-3B94-41D8-BD02-73C021A3365D}", "NameServer", "REG_SZ", "213.177.96.1,213.177.97.1") но дело то в том, что {E5B0E6CF-3B94-41D8-BD02-73C021A3365D} - эта ветка у всех разная... что же делать ? |
|
Отправлено: 16:09, 16-12-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата garanov:
Можно получить данные с каждой из них, но лучше будет определить искомую ветку по её параметрам к примеру (по ключам внутри ветки). |
|
------- Отправлено: 16:28, 16-12-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата garanov:
_NetAdapterSetDNS("192.168.1.1,192.168.1.3") Func _NetAdapterSetDNS($sDNSList, $sHostName = "localhost") Local $objWMIService = ObjGet( "winmgmts:\\"& $sHostName &"\root\CIMV2") Local $aDNSList = StringSplit($sDNSList, ",;|", 2) Local $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled = True', "WQL", 0x30) If IsObj($colItems) Then For $colItem In $colItems $colItem.SetDNSServerSearchOrder($aDNSList) Return True Next EndIf Return False EndFunc ;==> _NetAdapterSetDNS |
|
Отправлено: 16:59, 16-12-2009 | #3 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать Опа, спасибо!)
Только вот как бы доделать что бы он менял DNS по всем компам в сети? циклом... 10.167.32.$I |
Отправлено: 10:29, 17-12-2009 | #4 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата garanov:
|
||
Отправлено: 11:10, 17-12-2009 | #5 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать куда это написать то ?) я запутался
|
Отправлено: 15:37, 17-12-2009 | #6 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата garanov:
|
|
Отправлено: 16:13, 17-12-2009 | #7 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать ррр. не понял ничерта (
|
Отправлено: 16:19, 17-12-2009 | #8 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать $aCompList = _NetServerEnum(1) $sDNSList = "192.168.1.1,192.168.1.2" For $i=1 To $aCompList[0] _NetAdapterSetDNS($sDNSList, $aCompList[$i]) Next Func _NetAdapterSetDNS($sDNSList, $sHostName = "localhost") Local $objWMIService = ObjGet( "winmgmts:\\"& $sHostName &"\root\CIMV2") Local $aDNSList = StringSplit($sDNSList, ",;|", 2) Local $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled = True', "WQL", 0x30) If IsObj($colItems) Then For $colItem In $colItems $colItem.SetDNSServerSearchOrder($aDNSList) Return True Next EndIf Return False EndFunc ;==> _NetAdapterSetDNS Func _NetServerEnum ($iSrvType = -1, $sDomain = '') Local $uBufPtr = DllStructCreate("ptr;int;int"), $res[1]=[0], $i Local $uRecord = DllStructCreate("dword;ptr"), $iRecLen = DllStructGetSize($uRecord) Local $uString = DllStructCreate("char[16]") Local $uDomain = DllStructCreate("byte[32]"), $pDomain = 0 If Not ($sDomain='' Or $sDomain='*') Then DllStructSetData($uDomain, 1, StringToBinary($sDomain,2)) $pDomain = DllStructGetPtr($uDomain) EndIf Local $ret = DllCall ("netapi32.dll", "int", "NetServerEnum", _ "ptr", 0, "int", 100, _ "ptr", DllStructGetPtr($uBufPtr,1), "int", -1, _ "ptr", DllStructGetPtr($uBufPtr,2), _ "ptr", DllStructGetPtr($uBufPtr,3), _ "int", $iSrvType, "ptr", $pDomain, "int", 0 ) If $ret[0] Then Return SetError(1, $ret[0], '') Local $res[DllStructGetData($uBufPtr,3)+1]=[DllStructGetData($uBufPtr,3)] For $i=1 To DllStructGetData($uBufPtr,3) Local $uRecord = DllStructCreate("dword;ptr", DllStructGetData($uBufPtr,1)+($i-1)*$iRecLen) Local $sNBName = DllStructCreate("byte[32]", DllStructGetData($uRecord,2)) DllStructSetData($uString,1,BinaryToString(DllStructGetData($sNBName,1),2)) $res[$i] = DllStructGetData($uString,1) Next $ret = DllCall ("netapi32.dll", "int", "NetApiBufferFree", "ptr", DllStructGetData($uBufPtr,1)) Return $res EndFunc ; ==> _NetServerEnum |
Отправлено: 16:55, 17-12-2009 | #9 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать хех. смотрится крутовато попробую разобраться вечерком .
спасибо!) |
Отправлено: 17:44, 17-12-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Исчезает содержимое ветки реестра HKCU...RUN | Nitro75 | Microsoft Windows 2000/XP | 7 | 15-10-2009 22:38 | |
Доступ - [решено] Как дать пользователю доступ на чтение/запись ветки реестра в Win 200 Pro? | mnv-uanic | Microsoft Windows 2000/XP | 4 | 02-06-2009 11:59 | |
[решено] Установка разрешений на ветки реестра через CMD | Delirium | Microsoft Windows NT/2000/2003 | 12 | 10-07-2008 09:40 | |
[решено] Разрешение на ветки реестра в 2000 | Maks_mq | Microsoft Windows NT/2000/2003 | 3 | 30-10-2007 08:57 | |
[решено] Программа, запоминающая ветки реестра и папки для установки | Sparkster | Автоматическая установка приложений | 3 | 04-05-2007 01:57 |
|