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

Ответить
 • Просмотры: 3
Аватара пользователя
Vadikan

Re: [решено] Утилита для перехода в заданный раздел реестра

Сообщение Vadikan »

madmasles, а куда конкретно вы помещаете

Код:

Код: Выделить всё

HotKeySet('{ENTER}', 'OKButton')

Если непосредственно над Func OKButton() или внутри, нажатие Enter ничего не дает. А если над while, то работает так, как я описал выше - перехват всех нажатий.
Аватара пользователя
madmasles

Re: [решено] Утилита для перехода в заданный раздел реестра

Сообщение madmasles »

AZJIO, да, потребность в утилите есть Изображение Идея с избранным, интересна, конечно, если на флэшке таскать.



Но у меня не работает этот скрипт в 7. Он просто открывает редактор реестра, полностью разворачивая окно (что не гуд). И при этом никуда не переходит. Запуск от имени админа ничего не меняет.
Аватара пользователя
SyDr

Re: [решено] Утилита для перехода в заданный раздел реестра

Сообщение SyDr »

Код:

Код: Выделить всё

; 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
#RequireAdmin
#include 
Opt("GUIOnEventMode", 1)  ; Change to OnEvent mode
Global $hGUI, $hInput, $nButton, $sExePath = "regjump.exe"
$hGUI = GUICreate("JumpReg", 400, 100)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
GUICtrlCreateLabel("Путь к разделу реестра:", 20, 10)
$hInput = GUICtrlCreateInput("", 20, 30, 360, 20)
$nButton = GUICtrlCreateButton("Jump", 170, 60, 60) ;Registry path input field
GUICtrlSetOnEvent($nButton, "OKButton")
Dim $AccelKeys[1][2]=[["{ENTER}", $nButton]]
GUISetAccelerators($AccelKeys)
GUISetState(@SW_SHOW)
While 1
	Sleep(1000)  ; Idle around
WEnd
Func OKButton()
	Local $sPath = GUICtrlRead($hInput) ;)
	If $sPath = "" Then Return 0
	Run(@ComSpec & " /c " & $sExePath & " " & $sPath, "", @SW_HIDE)
	;Run("regjump.exe" & " " & GUICtrlRead($path), "", @SW_SHOW) ;works, but shows cmd window
EndFunc
Func _Exit()
	Exit
EndFunc
;
Аватара пользователя
Iska

Re: [решено] Утилита для перехода в заданный раздел реестра

Сообщение Iska »

Добавить стиль кнопки «Default» ($BS_DEFPUSHBUTTON):



Код:

Код: Выделить всё

; 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 
#include 
#include 
AutoItSetOption("MustDeclareVars", 1)
AutoItSetOption("GUIOnEventMode",  1)  ; Change to OnEvent mode
Local $mainwindow = GUICreate("JumpReg", 400, 100)
                    GUICtrlCreateLabel("Путь к разделу реестра:", 10, 10)
Local $path       = GUICtrlCreateInput("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer", 10, 30, 400 - 10 * 2, 20)
Local $btnJump    = GUICtrlCreateButton("Jump", (400 - 120) / 2, 60, 120, 30, $BS_DEFPUSHBUTTON) ;Registry path input field
GUICtrlSetOnEvent($btnJump, "fnOKButton")
GUISetOnEvent($GUI_EVENT_CLOSE, "fnGUIClose")
GUISetState(@SW_SHOW)
While 1
  Sleep(100)  ; Idle around
WEnd
Func fnOKButton()
    Run("regjump.exe """ & GUICtrlRead($path) & """", "");, @SW_HIDE)
EndFunc
Func fnGUIClose()
    Exit
EndFunc

К сожалению, у меня получается при «…, @SW_HIDE»:



Код:

Код: Выделить всё

    Run("regjump.exe """ & GUICtrlRead($path) & """", "", @SW_HIDE)

что редактор реестра тоже запускается в скрытом окне.
Аватара пользователя
Yashied

Re: [решено] Утилита для перехода в заданный раздел реестра

Сообщение Yashied »

Vadikan,

Первые два пункта выполнил.



Прыжок сейчас осуществляется за счёт того, что при закрытии реестра он сохраняет последний открытый раздел и открывает в том же месте. То есть приходится закрывать regedit, вставить полный путь раздела реестра и снова открыть уже в эом месте. Посмотрел старую утилиту regjump.exe, она открывает без перезапуска regedit, можно ей передать путь в ком-строке. Как в Win7 не смотрел, но в WinXP вроде не видел команд перехода в ком-строке без сторонних утилит.




Цитата Vadikan:



Запрос с предложением создать INI лишний
[решено] Утилита для перехода в заданный раздел реестра




Я утилитку в LiveCD использовал, а там некоторые программы вылетали при попытке создать свой ini, поэтому я сделал возможность не создавать, хотя можно проверить доступность записи, но ещё этот диалог как бы предупреждает при первом старте что настройки будут храниться в ini, а потом об этом уже не напоминается. Поэтому вроде не критично.



На счёт истории: хотелось бы избранное иметь и отдельно историю. То есть сделать нередактируемый комбобокс, при выборе в котором происходит вставка раздела в инпут и открытие по Enter. А для истории второй такой же комбобокс. Получается и раздельное наполнение. На счёт хранения в реестре истории - можно галочку сделать "Хранить в реестре (иначе в ini)". Нередактируемый комбобокс не такой красивый как кнопка, но те же свойства, раскрывается по клику в поле, а не только на стрелке.

Неассоциированность ini уже есть функция... откроется в том редакторе, в котором ассоциирован txt (хотя можно и блокнот жёстко указать).

Для Избранного диалог сделаю. Может сделать главное меню, чтоб туда кнопки убрать, кроме "прыжок".

Мне приходится настраивать компы, и там обычно меню "Избранное" со 100% гарантией отсутствует, поэтому я добавляю утилитой, чтоб потом без перезапуска смотреть некоторые необходимые мне ветки. А в утилите первый раздел ini как бы и есть избранное. Только я не вижу разницы, что в утилите делать кнопочки добавления в избранное ( по сути редактирование ini), что открыть в блокноте и редактировать, там же как то наглядней.



Обновил скрипт, ограничение на 26 пунктов комбобокса добавил.
Аватара пользователя
Vadikan

Re: [решено] Утилита для перехода в заданный раздел реестра

Сообщение Vadikan »

Цитата AZJIO:



Прыжок сейчас осуществляется за счёт того, что при закрытии реестра он сохраняет последний открытый раздел и открывает в том же месте.
[решено] Утилита для перехода в заданный раздел реестра




Понятно, я не обратил внимания, что Yashied сделал так же - я-то использовал regjump. Ну это не критично тогда.
Цитата AZJIO:



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




Да, но у вас сейчас в INI файл есть возможность сохранить только всю историю, а не выборочно. Я предлагаю разграничить и вообще не хранить ее в INI, оставив его только для избранного. И галочка отдельная не нужна. Тем более, что
Цитата AZJIO:



А в утилите первый раздел ini как бы и есть избранное.
[решено] Утилита для перехода в заданный раздел реестра




Избранное, которое вы открываете, все равно будет попадать в историю, т.е. доступно в раскрывающемся списке. Ну а невозможность записи INI можно проверять, и просто выводить ошибку в случае отлупа.




Цитата AZJIO:



То есть сделать нередактируемый комбобокс, при выборе в котором происходит вставка раздела в инпут и открытие по Enter. А для истории второй такой же комбобокс.
[решено] Утилита для перехода в заданный раздел реестра




Для истории вполне работает раскрывающийся список, как сейчас. А для отображения избранного, можно не комбобокс, а меню, как в regedit. Туда можно добавить пункт "Скопировать избранное в редактор реестра" в конце концов, раз вам эта фича нужна (и другим пригодится).




Цитата AZJIO:



Неассоциированность ini уже есть функция... откроется в том редакторе, в котором ассоциирован txt
[решено] Утилита для перехода в заданный раздел реестра




У меня предложило выбрать приложение...
Аватара пользователя
Iska

Re: [решено] Утилита для перехода в заданный раздел реестра

Сообщение Iska »

Vadikan, Вы не могли бы проверить, вот
эта утилита
работает под «Windows 7»?
Аватара пользователя
Vadikan

Re: [решено] Утилита для перехода в заданный раздел реестра

Сообщение Vadikan »

Цитата AZJIO:



. Кнопка прыжок будет мелкая слева от инпута
[решено] Утилита для перехода в заданный раздел реестра




Лучше уж справа, как когда-то в адресных строках у браузеров... Тем более, если будут выбирать из списка истории, стрелка-то справа будет - ближе тянуться Изображение



Заголовок окна лучше оставить, так будет больше похоже на обычную программу Изображение



Ждем-с Изображение
Аватара пользователя
Yashied

Re: [решено] Утилита для перехода в заданный раздел реестра

Сообщение Yashied »

После проверки в Win7 обновил ещё раз.

Всё-таки как лучше, текущий вариант без заголовка, но перемещать можно за само окно (сворачивание не работает, не критично) или вернуть заголовок с учётом увеличения ширина на 20-30 пикселей.



Удобство дополнительного комбобокса только в том что можно кликать по всей его площади. Либо сделать один комбобок и постоянно метится в стрелку раскрытия.
Аватара пользователя
Iska

Re: [решено] Утилита для перехода в заданный раздел реестра

Сообщение Iska »

AZJIO,



Уже ближе к финалу Изображение



1. Я бы все-таки вернул заголовок окна со всеми атрибутами - это понятнее, и не нужно будет делать "Выход" в "Меню" (см. #5 ниже). Не вижу особого смысла прикреплять окно вверху экрана, лучше по центру, как обычно.

2. Непонятно, почему нельзя было совместить поле ввода с раскрывающимся списком истории. Лишний элемент сейчас.

3. При установке курсора в поле он начинает дрожать, превращаясь то в стрелку, то в I.

4. Фон окна неудачно смотрится, особенно с учетом белого квадрата вокруг зеленой кнопки на черном фоне Изображение Лучше нейтральный фон.

5. "Меню" можно упразднить. Открыть JumpRegFav.ini - непонятный пункт. Его надо переместить в Избранное, над всем избранным, и отделить визуально разделителем. Справка - можно заменить на отдельный пункт "?". Порядок меню тогда такой: Избранное, Regedit, ?



Что касается JumpRegFav.ini, то не очень понятно, для чего нужно имя после разделителя. Видимо, это работает только при добавлении в избранное реестра, что неочевидно.
Ответить

Вернуться в «AutoIt»