#include <GUIConstants.au3> #Include <File.au3> AutoItSetOption("TrayIconHide", 1) ;скрыть в системной панели индикатор AutoIt Global $aRecords Global $Ini = @ScriptDir&'\RegFav.ini' ; путь к RegFav.ini ;Проверка существования RegFav.ini и атосоздание при отстутствии $answer = "" If Not FileExists($Ini) Then $answer = MsgBox(4, "Выгодное предложение", "Хотите создать необходимый RegFav.ini"&@CRLF&"для сохранения вводимых параметров?") If $answer = "6" Then IniWriteSection($Ini, "Favorites", '; отсчёт Favorites со второй строки. После разделителя "|" можно указать имя, иначе имя последнее после "\".'&@LF&'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders|Папки пользователя'&@LF&'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders|Папки пользователя 2'&@LF&'HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment|Переменные среды'&@LF&'HKEY_CURRENT_USER\Environment|Переменные среды текущего'&@LF&'HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices'&@LF&'HKEY_CLASSES_ROOT\Folder'&@LF&'HKEY_CLASSES_ROOT\Directory'&@LF&'HKEY_CLASSES_ROOT\Drive'&@LF&'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced') EndIf ; читаем данные RegFav.ini в массив If Not _FileReadToArray($Ini,$aRecords) Then MsgBox(4096,"Ошибка", "Ошибка чтения массива RegFav.ini", @error) Exit EndIf ; создание списка в комбобокс For $i=3 To $aRecords[0] If StringInStr($aRecords[$i], '|') = 0 Then Local $aReg[3] $aVReg=StringRegExp($aRecords[$i], "(^.*)\\(.*)$", 3) $aReg[1]=$aRecords[$i] Else $aReg = StringSplit($aRecords[$i], "|") EndIf ; Добавление строки в комбобокс If $i=3 Then $list =$aReg[1] $regpath1=$aReg[1] else $list &= '|'&$aReg[1] endif Next GUICreate("Прыжок в указанную ветку реестра",588,117) ; размер окна $tab=GUICtrlCreateTab (0,2, 588,115) ; размер вкладки $tab0=GUICtrlCreateTabitem ("Указать ветку реестра") ; имя вкладки GUICtrlSetTip(-1, "Копировать-вставить") $comboreg=GUICtrlCreateCombo ("", 7,40,574,18) GUICtrlSetData(-1,$list , $regpath1) $start=GUICtrlCreateButton ("Прыжок в ветку", 50,80,131,22) GUICtrlSetTip(-1, "Открыть regedit с переходом"&@CRLF&"в указанную ветку реестра.") $favorites=GUICtrlCreateButton ("Добавить в Избранное", 200,80,151,22) GUICtrlSetTip(-1, "Добавить в Избранное Regedit"&@CRLF&"ветви из RegFav.ini.") $Clean=GUICtrlCreateButton ("Очистить Избранное", 370,80,151,22) GUICtrlSetTip(-1, "Очистить Избранное Regedit.") $tab4=GUICtrlCreateTabitem (" ?") ; имя вкладки GUICtrlCreateLabel ("Ветви реестра хранятся в RegFav.ini (генерируется при отсутствии).", 20,40,440,20) GUICtrlCreateLabel ("Как вариант Копировать/Вставить.", 20,60,450,20) GUICtrlCreateLabel ("Скрипт использовать при отсутствии удобного менеджера реестра.", 20,80,450,20) $runfav=GUICtrlCreateButton ("RegFav.ini", 460,40,90,22) GUICtrlCreateLabel ("AZJIO 29.01.2010", 450,90,110,32) GUICtrlCreateTabitem ("") ; конец вкладок GUISetState () While 1 $msg = GUIGetMsg() Select Case $msg = $Clean RegDelete("HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Favorites") Case $msg = $favorites For $i=3 To $aRecords[0] If StringInStr($aRecords[$i], '|') = 0 Then Local $aReg[3] $aVReg=StringRegExp($aRecords[$i], "(^.*)\\(.*)$", 3) $aReg[2]=$aVReg[1] $aReg[1]=$aRecords[$i] Else $aReg = StringSplit($aRecords[$i], "|") EndIf ; Добавление в реестр избранное RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Favorites",$aReg[2],"REG_SZ",'Мой компьютер\'&$aReg[1]) Next If ProcessExists ( "regedit.exe" )<>0 Then ContinueLoop Else Run('regedit.exe') EndIf Case $msg = $start If ProcessExists ( "regedit.exe" )<>0 Then ;если существует процесс regedit.exe, то завершить его ProcessClose ( "regedit.exe" ) ProcessWaitClose ( "regedit.exe" ) EndIf $comboreg0=GUICtrlRead ($comboreg) RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit","LastKey","REG_SZ",'Мой компьютер\'&$comboreg0) Run('regedit.exe') Case $msg = $runfav ShellExecute(@ScriptDir&'\RegFav.ini', "", @ScriptDir, "") Case $msg = -3 ExitLoop EndSelect WEnd |