Автор Тема: Получить значение из реестра  (Прочитано 589 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн .me [?]

  • Новичок
  • *
  • Сообщений: 89
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Здравствуйте, нужно получить полное значение из реестра, пробовал так:
Код: AutoIt [Выделить]
$sPath = RegWrite("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp","PortNumber")
 
$Hex =   $sPath
$String = _HexToString($Hex)
MsgBox(4096, "Hex", "Оригинал Hex: " & $Hex & @LF & "Строка: " & $String)

но получаю значение 0x0 а должно быть 0x000000d3d, подскажите, что не так?

Русское сообщество AutoIt

Получить значение из реестра
« Отправлен: Апрель 19, 2017, 12:28:11 »

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3586
  • Репутация: 948
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Получить значение из реестра
« Ответ #1, Отправлен: Апрель 19, 2017, 12:34:09 »
Код: AutoIt [Выделить]

Оффлайн .me [?]

  • Новичок
  • *
  • Сообщений: 89

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Получить значение из реестра
« Ответ #2, Отправлен: Апрель 19, 2017, 12:58:40 »
InnI, спасибо за ответ, но все равно что то я вновь не верно делаю:
Код: AutoIt [Выделить]
#include <string.au3>
$sPath = RegRead("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp","PortNumber")
 
$Hex =   $sPath
$String = _HexToString($Hex)
MsgBox(4096, "Hex", "Оригинал Hex: " & $Hex & @LF & "Строка: " & $String)

возвращает пустые значения

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3586
  • Репутация: 948
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Получить значение из реестра
« Ответ #3, Отправлен: Апрель 19, 2017, 15:08:30 »
.me
Не знаю, как у вас, но у меня в реестре часть пути "\Terminal Server\" указана через пробел.

Русское сообщество AutoIt

Re: Получить значение из реестра
« Ответ #3 Отправлен: Апрель 19, 2017, 15:08:30 »

Оффлайн .me [?]

  • Новичок
  • *
  • Сообщений: 89

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Получить значение из реестра
« Ответ #4, Отправлен: Апрель 20, 2017, 08:08:39 »
InnI, поправил, но результат остался тем же

Помечен как лучший ответ пользователем .me Отправлен Апрель 20, 2017, 20:33:36

Онлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1202
  • Репутация: 169
  • Пол: Мужской
  • Windows7 (x64)
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Получить значение из реестра
« Ответ #5, Отправлен: Апрель 20, 2017, 08:30:17 »
Запустите скрипт от имени администратора и попробуйте:
Код: AutoIt [Выделить]
$sPath = RegRead("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp","PortNumber")
MsgBox(64, 'Код ошибки:', '@error = ' & @error)
 


Оффлайн .me [?]

  • Новичок
  • *
  • Сообщений: 89

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Получить значение из реестра
« Ответ #6, Отправлен: Апрель 20, 2017, 08:54:05 »
Код: AutoIt [Выделить]
@error = 1


Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3586
  • Репутация: 948
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Получить значение из реестра
« Ответ #7, Отправлен: Апрель 20, 2017, 12:56:44 »
.me
Читаем справку: устанавливает значение @error равным: 1 - Не удалось открыть указанный раздел
Тут два варианта. Либо функция не может найти указанный путь, либо отсутствуют права доступа.
Если вы запускали код Alofa, то обратите внимание, что в пути тоже нет пробела. Если же и с пробелом ошибка, то добавьте в скрипт
Код: AutoIt [Выделить]

Русское сообщество AutoIt

Re: Получить значение из реестра
« Ответ #7 Отправлен: Апрель 20, 2017, 12:56:44 »

Онлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1202
  • Репутация: 169
  • Пол: Мужской
  • Windows7 (x64)
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Получить значение из реестра
« Ответ #8, Отправлен: Апрель 20, 2017, 15:13:24 »
Проверил на Win7(x86), Win7(x64), Win10 - все робит С ПРОБЕЛОМ.
.me вы дополнительно в самом реестре посмотрите Разрешения на раздел "RDP-Tcp".

Оффлайн .me [?]

  • Новичок
  • *
  • Сообщений: 89

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Получить значение из реестра
« Ответ #9, Отправлен: Апрель 20, 2017, 20:33:15 »
Все получилось, все огромное спасибо
решение:
Код: AutoIt [Выделить]
#RequireAdmin
$sPath = RegRead("HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp","PortNumber")

$sString =  $sPath
MsgBox(4096, "Port", " Port: " & $sString)
 


Русское сообщество AutoIt

Re: Получить значение из реестра
« Ответ #9 Отправлен: Апрель 20, 2017, 20:33:15 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
4 Ответов
2999 Просмотров
Последний ответ Май 12, 2010, 20:45:14
от f4llen
3 Ответов
5127 Просмотров
Последний ответ Сентябрь 15, 2010, 18:06:01
от Yuriy
6 Ответов
5395 Просмотров
Последний ответ Октябрь 08, 2010, 11:37:45
от Yashied
2 Ответов
2034 Просмотров
Последний ответ Апрель 13, 2012, 17:43:30
от Isn
11 Ответов
3851 Просмотров
Последний ответ Сентябрь 14, 2012, 16:16:46
от Yashied
11 Ответов
4969 Просмотров
Последний ответ Октябрь 17, 2012, 22:58:08
от Kaster
7 Ответов
1200 Просмотров
Последний ответ Январь 24, 2015, 09:57:23
от madmasles
3 Ответов
760 Просмотров
Последний ответ Август 07, 2015, 11:35:58
от Yashied
2 Ответов
860 Просмотров
Последний ответ Сентябрь 09, 2015, 19:04:21
от InnI
2 Ответов
165 Просмотров
Последний ответ Июль 31, 2017, 15:24:32
от InnI