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

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


Спасибо!

x64
Сохранение позиции окна работает.

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


Отправлено: 10:42, 26-12-2010 | #51



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

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


Аватара для Morpheus

Ветеран


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

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


AZJIO, спасибо!
Vadikan, 404.

UPD: скомпилировал, тестирую 64. Вот такая непонятка:


UPD: на 32 то же самое.

Последний раз редактировалось Morpheus, 26-12-2010 в 13:40.


Отправлено: 13:03, 26-12-2010 | #52


Аватара для AZJIO

Старожил


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

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


Morpheus, понял... я сделал функцию проверки существования методом наличия либо подраздела либо параметра, а если ни того ни другого, то выдаёт "не сществует". Стандартой проверки существования раздела реестра в AutoIt нет. Чуть позже попробую выполнить эту функцию через ком-строку, например:
Код: Выделить весь код
REG QUERY "HKEY_CURRENT_USER\Keyboard Layout\Substitutes"
if %errorlevel%==0 Notepad.exe
получив результат из выходного потока... всё будет работать нормально.

Отправлено: 20:38, 26-12-2010 | #53


(*.*)


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

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


Поправил ссылку. Но проблему не могу воспроизвести.

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


Отправлено: 20:40, 26-12-2010 | #54


Аватара для madmasles

Ветеран


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

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


Цитата AZJIO:
Стандартой проверки существования раздела реестра в AutoIt нет. »
Я так наличие проверяю. Еще ни разу не подводило:
Код: Выделить весь код
#include <WinAPIEx.au3>

Opt('MustDeclareVars', 1)

Global $hKey

$hKey = _WinAPI_RegOpenKey($HKEY_LOCAL_MACHINE, 'SOFTWARE\AutoIt v3\AutoIt')
If Not $hKey Then
    MsgBox(16, 'Ошибка', 'Нет раздела')
Else
    MsgBox(64, 'OK', $hKey)
EndIf

Отправлено: 21:13, 26-12-2010 | #55


Аватара для Yashied

Старожил


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

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


Цитата AZJIO:
Стандартой проверки существования раздела реестра в AutoIt нет. »
Код: Выделить весь код
RegRead('HKEY_CURRENT_USER\Keyboard Layout\Substitutes', '')
Switch @error
    Case 0
        ConsoleWrite('OK' & @CR)
    Case 1
        ConsoleWrite('Registry key not found.' & @CR)
    Case -1
        ConsoleWrite('Registry value not found.' & @CR)
;~  Case ...
;~
EndSwitch

Отправлено: 21:14, 26-12-2010 | #56


Аватара для AZJIO

Старожил


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

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


Morpheus, поравил
Код: Выделить весь код
;  MerkurAlex (mod AZJIO)
; http://www.autoitscript.com/forum/topic/70203-regexists/page__view__findpost__p__514688
Func _Reg_Exists($key)
    Local $Err=RunWait('reg query "'&$key&'"','',@SW_HIDE)
    If $Err=0 Then
        Return 1
    Else
        Return 0
    Endif
EndFunc
и поправил, если указать историю больше 50, то устанавливается максимально возможное 50, раньше игнорировалось оставляя предыдущее значение, а это заставлят искать наибольший параметр методом тыка. Проверил корректность 50 пунктов истории, появляется прокрутка в комбобоксе. Можно увеличить параметр, но желательно с проверкой корректности хранения в реестре.

Ссылки обновил, посты подправил.

Отправлено: 23:08, 26-12-2010 | #57


Аватара для Morpheus

Ветеран


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

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


AZJIO, теперь ок, спасибо!

Отправлено: 00:08, 27-12-2010 | #58


Аватара для FlatX007

Ветеран


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

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


На Win7 x86 - 7600, вообще никуда не прыгает, даже regedit не открывает.

Отправлено: 08:22, 27-12-2010 | #59


Аватара для Morpheus

Ветеран


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

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


FlatX007, у всех она, всё прыгает
Win+Pause ---> Дополнительные параметры системы ---> Переменные среды ---> Path выглядит так?
Код: Выделить весь код
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
Win+R ---> regedit - открывает?

Отправлено: 10:22, 27-12-2010 | #60



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




 
Переход