Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Утилита для перехода в заданный раздел реестра

Ответить
Настройки темы
[решено] Утилита для перехода в заданный раздел реестра

(*.*)


Сообщения: 36494
Благодарности: 6675


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать




Исходники версии 0.6 входят в комплект с программой.

Текущий скрипт для компиляции утилиты
Текущий скрипт для тех, кто желает выбрать способ перехода в реестр
Текущий английский языковой файл (образец для перевода)

Разработка: AZJIO



Промежуточные решения
Оболочка для regjump
Без сторонних утилит
Без сторонних утилит (с запоминанием ввода путей)

С чего все начиналось
Я сделал простенькую оболочку для утилиты regjump, поскольку так и не смог найти корректно работающий аналог под 7.




Код: Выделить весь код
; Simple GUI wrapper for regjump http://technet.microsoft.com/en-us/sysinternals/bb963880
; regjump must reside in %path%
; Run the script elevated when UAC is on

#include <GUIConstantsEx.au3>

Opt("GUIOnEventMode", 1)  ; Change to OnEvent mode 
$mainwindow = GUICreate("JumpReg", 400, 100)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUICtrlCreateLabel ("Путь к разделу реестра:", 20, 10)
$path = GUICtrlCreateInput("", 20, 30, 360, 20)
$jumpbtn = GUICtrlCreateButton("Jump", 170, 60, 60) ;Registry path input field
GUICtrlSetOnEvent($jumpbtn, "OKButton")
GUISetState(@SW_SHOW)
$exe = "regjump.exe "

While 1
  Sleep(1000)  ; Idle around
WEnd

Func OKButton()
  $jump = $exe & GUICtrlRead($path)
  Run(@ComSpec & " /c " & $jump, "", @SW_HIDE)
 ;Run("regjump.exe" & " " & GUICtrlRead($path), "", @SW_SHOW) ;works, but shows cmd window

EndFunc

Func CLOSEClicked()
  Exit
EndFunc
На большее моих знаний AutoIt и программирования в целом не хватает Но все-таки хотелось бы сделать так, чтобы после ввода раздела реестра в поле активной становилась кнопка. Это позволит просто нажимать Enter, вместо TAB+Enter.

Подскажете, как это сделать?

Спасибо.

P.S. Скрипт нужно запускать с полными правами.

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:09, 19-12-2010

 

Аватара для Morpheus

Ветеран


Сообщения: 12426
Благодарности: 2328

Профиль | Отправить PM | Цитировать


AZJIO, спасибо!
Цитата AZJIO:
Параметр обязательно в кавычках - " »
А чего так? Вроде и без них замечательно работает.

Отправлено: 22:16, 29-05-2012 | #161



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для AZJIO

Старожил


Сообщения: 254
Благодарности: 126

Профиль | Отправить PM | Цитировать


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

перезалил добавив x64

Отправлено: 23:43, 29-05-2012 | #162


Аватара для Morpheus

Ветеран


Сообщения: 12426
Благодарности: 2328

Профиль | Отправить PM | Цитировать


AZJIO, а, тогда ок. Думал, что кавычки относятся к хоткеям.
Цитата AZJIO:
Ctrl+F1 (удобные хоткеи заняты). Параметр обязательно в кавычках - " »
Командную строку не тестил, поскольку сторонних текстовых редакторов в хозяйстве не имеется.

Отправлено: 23:56, 29-05-2012 | #163


Аватара для AZJIO

Старожил


Сообщения: 254
Благодарности: 126

Профиль | Отправить PM | Цитировать


Цитата Morpheus:
Командную строку не тестил, поскольку сторонних текстовых редакторов в хозяйстве не имеется. »
а зря, теже reg-файлы с подсветкой кода воспринимаются блоками, намного легче воспринимать чем однородный текст. Ну а с учётом, что меньше требуется телодвижений, то сейчас вызов по Alt+G переход к выделенной в редакторе сторке, кажется лучше и не придумать. Идеальней было бы эмулировать Ctrl+C (Ctrl+Insert), но пока не получилось.

Отправлено: 00:12, 30-05-2012 | #164


Аватара для AZJIO

Старожил


Сообщения: 254
Благодарности: 126

Профиль | Отправить PM | Цитировать


Обновил JumpReg
1. Задейсвовал всё-таки Send('^{INS}'), видимо не работал из-за горячей клавиши Alt, с Ctrl+1 без проблем. То есть достаточно выделить строку в редакторе / браузере и вызвать горячую клавишу.
2. Иногда в браузере захватывает лишний пробел, чтоб не напрягаться точным выделение текста добавил в игнор все пробельные символы начала и конца.
3. Добавил разворачивание последнего раздела, чтобы в дереве видеть существование вложенных разделов.
4. Теперь возможно выделить весь reg-файл или всю страницу браузера и горячей клавишей вызвать извлечение всех строк разделов реестра с предложением открыть первую или импортировать строки в раскрывающийся список.


Перезалил, оптимизировал импорт, при импорте из reg-файлов размером мегабайт отсутствует торможение поиска, так как ищутся только количество, которое может поместиться в раскрывающийся список. И исключение дублирующих из списка импорта.

Исправил ошибку переменной при обфускации.

Последний раз редактировалось AZJIO, 31-05-2012 в 14:45.

Это сообщение посчитали полезным следующие участники:

Отправлено: 04:57, 31-05-2012 | #165


Аватара для AZJIO

Старожил


Сообщения: 254
Благодарности: 126

Профиль | Отправить PM | Цитировать


Поправки:
1. При увеличении количества элементов в раскрывающемся списке отсутсвовало обновление списка при импорте строк из буфера, теперь работает.
2. Усложнил регулярное выражение. Не отлавливало пути содержащие пробел в последнем элементе пути

Суть регулярного выражения захватить строку начинающуюся с известных корневых разделов, например HKCU, далее набор повторяющихся групп заканчивающихся символом "\" чтобы не захватывать лишнее внутри группы допускаются не более 4 слов, то есть 4 группы заканчивающиеся пробелом. В каждой группе запрещены символы переноса строк. Последнее слово может либо содержать пробелы но оканчиваться концом строки, либо не содержать пробелов и обрываться при первом пробеле, то есть если нет конца строки, то обрывается по пробелу.

Отправлено: 06:26, 03-06-2012 | #166


Аватара для AZJIO

Старожил


Сообщения: 254
Благодарности: 126

Профиль | Отправить PM | Цитировать


JumpReg - тестовый вариант, который при первом запуске спрашивает где хранить настройки, в реестре или в ini-файле. Если ini-файл рядом с JumpReg.exe, то приоритет ini-файл, даже если настройки есть в реестре.
Кстати, раздел настроек в реестре поменялся. Список в комбобоксе теперь сохраняется только при выходе из программы.

Последний раз редактировалось AZJIO, 22-08-2012 в 12:22.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:24, 14-08-2012 | #167


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


AZJIO, заметил только сейчас, что на Seven x64 JumpReg запускает regedit 32bit и при физическом отсутствии искомой ветки не спрашивает перейти ли в ближайшую похожую а ломится куда попало.

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 22:59, 27-09-2012 | #168


Аватара для AZJIO

Старожил


Сообщения: 254
Благодарности: 126

Профиль | Отправить PM | Цитировать


Pozia, проверь, что версия последняя "0.8.1 2012.08.22", проверь в каком режиме прыжок "без сторонних утилит"?
И проверь отдельно работу функции
Код: Выделить весь код
MsgBox(0, '', _RegExists('HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache'))

Func _RegExists($sKey)
    RegRead($sKey, '')
    Return Not (@error > 0)
EndFunc
Логически путь к разделу будет обрезаться пока раздел реестра не существует, и мимо цикла обрезки не пройти. Если только функция проверки существования работает неправильно. Она была заменена на более компактный и нативный вариант. Ошибки (>0) функции RegRead являются индикатором несуществования раздела и скорее всего более вероятней ожидать что функция посчитает существующий раздел несуществующим, чем несуществующий существующим. Уж не существующий 100% выдаст ошибку и будет обрезаться.
Пока предположений нет... И у меня нет Win7 x64.

Отправлено: 06:59, 28-09-2012 | #169


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


AZJIO, перекачал из 167 сообщения - у меня была версия 0.8.0, хотя оттуда качал вроде. Тихо обновили что ли? ) На версии 0.8.1 все нормально.
Если еще что нужно проверить то не понял, что значит
Цитата AZJIO:
в каком режиме прыжок "без сторонних утилит"? »
?
И как проверить отдельно функцию приведенную?

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 08:50, 28-09-2012 | #170



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Утилита для перехода в заданный раздел реестра

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - [решено] Почему параметры реестра импортируются в раздел WOW6432Node loveaboveall Microsoft Windows 7 17 17-01-2011 12:13
CMD/BAT - [решено] Смена прав на раздел реестра и его удаление primewar Скриптовые языки администрирования Windows 20 30-11-2010 22:17
Утилиты - [addon] ERUNT - утилита для бэкапа реестра. Boa Soft Наборы обновлений для Windows XP/2003/Windows 7 18 03-10-2010 18:24
Интерфейс - [решено] Ярлык для перехода в режимы сна в Vista x64 SP2 BBeard Microsoft Windows Vista 5 29-06-2009 11:42
[решено] Невозможно удалить раздел реестра alexandri Microsoft Windows 2000/XP 5 18-01-2007 09:09




 
Переход