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

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

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

(*.*)


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


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

Профиль | Сайт | Отправить 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

 

(*.*)


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

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


Цитата AZJIO:
(GetUserDefaultLocaleName) и KaFu (GetUserDefaultLangID) »
Это UserLocale - Формат в региональных настройках. Это тоже можно использовать, но если можно определить язык интерфейса ОС у текущего пользователя, то мне кажется - это самый точный выбор для языка интерфейса программы.

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


Отправлено: 12:48, 09-01-2011 | #81



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

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


Аватара для AZJIO

Старожил


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

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


Вот переделал скрипт с офсайта с GetUserDefaultUILanguage, если у вас выдаст 0419, то используем этот вариант.
Код: Выделить весь код
$Lang_dll = DllOpen("kernel32.dll")
$UserIntLang=DllCall ( $Lang_dll, "int", "GetUserDefaultUILanguage" )
If @error Then
    $UserIntLang="UNKNOWN"
Else
    $UserIntLang=Hex($UserIntLang[0],4);conversion en HEX
EndIf
DllClose($Lang_dll)
MsgBox(0, 'Message', $UserIntLang)
А я предыдущий пост правил )))), а нового не видел...

Отправлено: 12:58, 09-01-2011 | #82


(*.*)


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

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


Цитата AZJIO:
если у вас выдаст 0419 »
Выдал

Я еще вспомнил, что хотел исправить в английской локализации:
Цитата:
$LngMs7='Error: invalid name for the root registry key'
$LngMs8='The key does not exist. The nearest key is:'
И надо как-то предусмотреть в скрипте возможность перевода на другие языки. Как я понимаю, сейчас будет выбор: если 0419 - русский, если другой - английский. Перебирать все возможные langid нет смысла, но, например, можно дать юзеру возможность прописать свой langID и соответственно добавить собственный набор строк на родном языке.

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

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


Отправлено: 13:44, 09-01-2011 | #83


Аватара для AZJIO

Старожил


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

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


Vadikan, как то сомневался в необходимости многоязыковой поддержки, но всё-таки добавил. Языки En и Ru встроены и определяются автоматически. При открытии файла из папки Lang произойдёт запись в реестр имени файла и перезапуск утилиты с указанным языком. Чтобы вернуть встроенный язык нужно удалить/переименовать файл, который использовался прежде.
Поправка: теперь в историю не попадают не существующие разделы, пустая строка и отказные при несуществовании.
Версия 0.6

Отправлено: 17:32, 09-01-2011 | #84


(*.*)


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

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


AZJIO, а какой формат ini файла?

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


Отправлено: 18:08, 09-01-2011 | #85


Аватара для AZJIO

Старожил


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

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


Vadikan, так то я постоянную ссылку обновляю.
Lang\En.ini
читать дальше »
Код: Выделить весь код
; This is a sample file for translating JumpReg interface to other languages
; Translate all strings and save the file with a new name, for example, FR.ini for French.
; In JumpReg, open ? -> Language and choose the language file.
[lng]
Title=JumpReg
About=About
Ver=Version
Site=Site
FIT=Define Favorites starting from the next line. After a separator | you can specify a name that has meaning only when importing favorites to Regedit; otherwise, the name is the last subkey.
FIT1=Folders user
FIT2=Environment Variables
FIT3=Environment variables, current
Fav=&Favorites
EdF=Edit Favorites
His=History
Exp=Export	Ctrl+Down
Imp=Import
SzH=Size
AdF=Import Favorites to Regedit	Ctrl+Up
ClF=Clear Favorites	Ctrl+Del
TpE="Jump to the registry key in Regedit.\r\nEnter"
SWR=Search with RegScanner	Alt+\
Top=Always on top
HsIB1=History
HsIB2=The number of records in the history:
Ms1=Message
Ms2=Clear Favorites in Regedit?
Ms3=Add JumpRegFav.ini entries\r\nto Regedit Favorites?
Ms4=Exported successfully to JumpRegSet.reg\r\nin the program folder.
Ms5=Error
Ms6=JumpRegSet.reg file not found.\r\nYou can create it with the Export command.
Ms7=Error: invalid name for the root registry key
Ms8=The key does not exist. The nearest key is:
Ms9=Do you want to jump to it?
SLng=Language
NRE=Regedit in a new window	Ctrl+Enter

Последний раз редактировалось AZJIO, 23-01-2011 в 06:43. Причина: добавил ещё строку "NRE=...."


Отправлено: 18:37, 09-01-2011 | #86


Аватара для Morpheus

Ветеран


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

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


Цитата AZJIO:
выложил промежуточные версии, чтоб отдетектить в какой момент появился этот глюк. »
Я хоть и достаточно терпеливый человек, но уже подташнивает... Тема на answers: windows 7 (x64 pro) window focus issues:when i open a program/window, sometimes it opens in the background instead of the foreground
Если бы поведение не менялось от запуска к запуску, было бы проще.
Воспроизводится и в 32-битной версии в 32-битной системе, и в 64 в 64, и в 32-версии в 64-битной Windows. Проще и быстрее воспроизвести последнее, практически стабильно возникает после ребута.

Итак, эффект не достигнут в версиях 3-5-6-7 (для повышения прав ставил флажок на вкладке "совместимость"), начиная с 8 воспроизводится.

Отправлено: 22:19, 09-01-2011 | #87


Аватара для AZJIO

Старожил


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

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


Morpheus, сравнил скрипты, разница только в #RequireAdmin и в добавлении главного меню программы. Остальные мелочи не влияют, так как наличие новых переменных к уже существующим эффекта не даст и цикл опроса кнопок, которые не работают пока не нажать.
Проверте последнюю версию, удалив #RequireAdmin (строка 14), если нормальзуется, то добавлю опцию включения в меню программы. Ну а без главного меню уже не обойтись.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:03, 10-01-2011 | #88


Аватара для Morpheus

Ветеран


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

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


Цитата AZJIO:
Проверте последнюю версию, удалив #RequireAdmin (строка 14) »
Блин, блин, блин... оно... Удалил - всё пока ок. Добавил строчку в версию под №7 - стало скрываться.
С флажком в совместимости работает нормально.

Отправлено: 01:29, 10-01-2011 | #89


(*.*)


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

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


Утилита должна запускаться с полными правами, иначе переходы в регедит не будут работать, начиная со второго. Первый вызывает регедит, который запускается с полными правами. Но последующие должны переходить из ограниченного процесса в полноправный - это не будет работать. Точно так же не работает переход из ограниченного RegScanner в открытый регедит.

Флажок совместимости обеспечивает запуск с полными правами другим способом, прописывая в реестре в разделе AppCompat путь к программе. Но как-то неправильно делать совместимую с 7 утилиту за счет режима совместимости

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


Отправлено: 03:51, 10-01-2011 | #90



Компьютерный форум 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




 
Переход