Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 2)

Модерирует : gyra, Maz

Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
; @AZJIO 9.04.2009, обновлено  30.04.2010
 
Global $Ini = @ScriptDir&'\TweakerXP.ini' ; путь к TweakerXP.ini
;Проверка существования TweakerXP.ini
If Not FileExists($Ini) And MsgBox(4, "Выгодное предложение", "Хотите создать необходимый TweakerXP.ini"&@CRLF&"для сохранения вводимых параметров?") = "6" Then
$iniopen = FileOpen($Ini,2)
FileWrite($iniopen, '[url]' & @CRLF & _
'http://google.ru' & @CRLF & _
'http://forum.oszone.net/index.php?' & @CRLF & _
'http://forum.ru-board.com' & @CRLF & _
'http://autoit-script.ru/index.php?action=forum' & @CRLF & _
'http://topdownloads.ru/search.php' & @CRLF & _
'[general]' & @CRLF & _
'notepad=notepad.exe' & @CRLF & _
'Place0=C:\' & @CRLF & _
'Place1=D:\' & @CRLF & _
'Place2='&@MyDocumentsDir & @CRLF & _
'Place3='&@MyDocumentsDir&'\Мои рисунки' & @CRLF & _
'Place4='&@MyDocumentsDir&'\Моя музыка' & @CRLF & _
'crtex=Readme' )
FileClose($iniopen)
EndIf
;считываем TweakerXP.ini
$notepad = IniRead ($Ini, "general", "notepad", "notepad.exe")
 
$ini2 = FileRead($ini)
$URL = StringRegExpReplace($ini2&@CRLF&'[', "(?s).*\[url\]\r?\n(.*?)(?:\r?\n\[.*)", "\1")
 
;кусок кода из UDF File.au3 для разделения образца построчно в массив
    If StringInStr($URL, @LF) Then
        $aURL = StringSplit(StringStripCR($URL), @LF)
    ElseIf StringInStr($URL, @CR) Then
        $aURL = StringSplit($URL, @CR)
    Else
        If StringLen($URL) Then
            Dim $aURL[2] = [1, $URL]
        Else
            MsgBox(0, "Сообщение", "нет данных")
            Exit
        EndIf
    EndIf
 
For $i = 1 to UBound($aURL) - 1 ; создаём переменные в цикле
    Assign('Inigurl' & $i, $aURL[$i])
Next
 
$Inigpl0 = IniRead ($Ini, "general", "Place0", "C:\")
$Inigpl1 = IniRead ($Ini, "general", "Place1", "D:\")
$Inigpl2 = IniRead ($Ini, "general", "Place2", @MyDocumentsDir)
$Inigpl3 = IniRead ($Ini, "general", "Place3", @MyDocumentsDir&'\Мои рисунки')
$Inigpl4 = IniRead ($Ini, "general", "Place4", @MyDocumentsDir&'\Моя музыка')
 
$crtext = IniRead ($Ini, "general", "crtext", "Readme")
 
GUICreate("TweakerXP v0.7",500,320) ; размер окна
;GUISetFont(9, 300)
$restart=GUICtrlCreateButton ("R", 479,4,18,18)
GUICtrlSetTip(-1, "Перезапуск твикера")
$openini=GUICtrlCreateButton ("ini", 450,4,24,18)
GUICtrlSetTip(-1, "Открыть файл настройки")
$tab=GUICtrlCreateTab (0,2, 500,318) ; размер вкладки
$hTab = GUICtrlGetHandle($Tab) ; (1) строка определения хэндэла элемента (таба), у меня без неё работает, но переменная указана в функции
 
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
$tab0=GUICtrlCreateTabitem ("Общие") ; имя вкладки
GUICtrlCreateLabel ("Конфигурация в TweakerXP.ini.", 30,40,450,20)
$checkCN01=GUICtrlCreateCheckbox ("Пункт ""Изменить"" ассоциировать с Notepad (txt, reg, htm, cmd, bat)", 20,60,450,20)
GUICtrlSetTip(-1, "Путь к вашему блокноту указать в TweakerXP.ini")
$checkCN02=GUICtrlCreateCheckbox ("Пункт в браузере ""Просмотр HTML-кода"" - открытие в Notepad", 20,80,450,20)
GUICtrlSetTip(-1, "Путь к вашему блокноту указать в TweakerXP.ini")
$checkCN03=GUICtrlCreateCheckbox ("При создании ярлыков убрать в имени ""Ярлык для""", 20,100,467,20)
$checkCN04=GUICtrlCreateCheckbox ("Пункт в контекстном меню - ""Открыть в новом окне""", 20,120,370,20)
GUICtrlSetTip(-1, "Тоже самое выполняется при Ctrl+Enter")
$tabBut04=GUICtrlCreateButton ("< Восстан.", 400,120,80,20)
GUICtrlSetTip(-1, "Удалить этот пункт из контекстного меню")
$checkCN05=GUICtrlCreateCheckbox ("Удaлить пункт мeню Пуск ""Bыxoд из cиcтeмы""", 20,140,450,20)
$checkCN06=GUICtrlCreateCheckbox ("Добавление ссылок в раскрывающуюся строку браузера IE", 20,160,450,20)
$checkCN07=GUICtrlCreateCheckbox ("Диалоговое окно ""Сохранить как..."" - изменение папок справа", 20,180,370,20)
GUICtrlSetTip(-1, "Проверить можно в стандартном блокноте"&@LF&"при открытии файла или сохранении.")
$tabBut07=GUICtrlCreateButton ("< Восстан.", 400,180,80,20)
GUICtrlSetTip(-1, "Восстановить по умолчанию")
$checkCN08=GUICtrlCreateCheckbox ("Удалить в контекстном меню пункт ""Печать""", 20,200,450,20)
GUICtrlSetTip(-1, "Часто ли вам приходилось их"&@LF&"использовать из контекстного меню?")
$checkCN09=GUICtrlCreateCheckbox ("Отключить проверку HDD при старте WindowsXP", 20,220,370,20)
GUICtrlSetTip(-1, "Если хард обьёмный проверка займёт"&@LF&"от сорока минут до нескольких часов")
$tabBut09=GUICtrlCreateButton ("< Восстан.", 400,220,80,20)
GUICtrlSetTip(-1, "Восстановить по умолчанию")
$checkCN010=GUICtrlCreateCheckbox ("Создание текстового файла", 20,241,190,20)
GUICtrlSetTip(-1, 'Пункт контекстного меню "Создать"'&@LF&'Пункт изменяется, если проверить'&@LF&'контекстное меню два раза.')
$crtextfl=GUICtrlCreateCombo ("", 210,240,155,18)
GUICtrlSetData(-1,$crtext&'|Readme|Прочитать|Прочти|Текстовый документ|Текст', $crtext)
 
$checkall0=GUICtrlCreateCheckbox ("Вкл/выкл все", 20,280,111,22)
GUICtrlSetTip(-1, "Убрать/поставить галочки" & @CRLF & "на всех пунктах")
$vkladka01=GUICtrlCreateButton ("Применить", 390,280,93,24)
 
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
$tab5=GUICtrlCreateTabitem ("User") ; имя вкладки
GUICtrlCreateLabel ("Изменение пути к папкам пользователя", 30,40,250,20)
$UserButRm=GUICtrlCreateButton ("Readme (обязательно читать)", 280,40,190,20)
 
$Label02=GUICtrlCreateLabel ("Буква HDD-диска:", 20,62,120,20)
$bykva=GUICtrlCreateCombo ("", 140,60,65,18)
GUICtrlSetData(-1,'C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z', 'D')
 
$Label03=GUICtrlCreateLabel ("Имя пользователя:", 20,92,120,20)
$usersprofiles=GUICtrlCreateCombo ("", 140,90,115,18)
GUICtrlSetData(-1,'user1|user|usersprofiles1|usersprofiles', 'user1')
$checkCN501=GUICtrlCreateCheckbox ("Создать стандартные папки и ярлыки к папкам в панели быстрого запуска", 20,120,460,20)
GUICtrlSetTip(-1, "Создать папки Games, Рисунки,"&@CRLF&"Музыка, Фильмы на указанном диске")
 
$vkladka011=GUICtrlCreateButton ("Применить", 390,280,93,24)
 
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
$tab6=GUICtrlCreateTabitem ("LNK") ; имя вкладки
GUICtrlCreateLabel ("Создание ярлыков", 30,40,250,20)
 
$checkCN601=GUICtrlCreateCheckbox ("Создать на рабочем столе ярлыки выключения и перезагрузки", 20,62,390,20)
$checkCN602=GUICtrlCreateCheckbox ("Создать на рабочем столе ярлык очистки Temp", 20,82,390,20)
$vkladka601=GUICtrlCreateButton ("Применить", 390,280,93,24)
 
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
$tab1=GUICtrlCreateTabitem ( "New *.*") ; имя вкладки
GUICtrlCreateLabel ("Удалить пункты в контекстном меню ""Создать"" для указанных типов файлов.", 20,35,450,20)
GUICtrlSetTip(-1, "Если нужен всего лишь ""текстовый документ"", то зачем его искать из списка с десятком файлов")
 
$typeall="3dg|ais|au3|bmp|doc|docx|egc|fxp|ppt|pptx|psd|rar|rsnp|rtf|slg|tpp|wav|xls|xlsx|zip|bfc|cmd|reg|ini"
$aType = StringSplit( $typeall, "|")
For $i = 1 To $aType[0]
    $pos = $i * 20 +40
    $pos_L = 10
    If $i > '10' Then $pos_L = 90
    If $i > '10' Then $pos = $i * 20 - 160
    If $i > '20' Then $pos_L = 170
    If $i > '20' Then $pos = $i * 20 - 360
    If $i > '30' Then $pos_L = 250
    If $i > '30' Then $pos = $i * 20 - 560
    Assign('checkType' & $i, GUICtrlCreateCheckbox ($aType[$i], $pos_L, $pos,70,20))
Next
; если в реестре есть, то установить галку
For $i = 1 To $aType[0]
    $test = RegRead('HKCR\.'&$aType[$i]&'\ShellNew', '')
    If @error<>1 Then GUICtrlSetState(Eval('checkType' & $i), 1)
Next
GUICtrlCreateLabel ("Указать"&@CRLF&"дополнительно"&@CRLF&"расширение", 390,120,99,56)
$Ltype= GUICtrlCreateInput ( "", 390,170,44,20)
 
$checkall1=GUICtrlCreateCheckbox("Вкл/выкл все", 390,220,99,22)
GUICtrlSetTip(-1, "Убрать/поставить галочки" & @CRLF & "на всех пунктах")
$vkladka02Cr=GUICtrlCreateButton ("Создать", 390,250,93,24)
GUICtrlSetTip(-1, "Создать отмеченные")
$vkladka02=GUICtrlCreateButton ("Удалить", 390,280,93,24)
GUICtrlSetTip(-1, "Удалить отмеченные")
 
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
$tab2=GUICtrlCreateTabitem ("Прочие") ; имя вкладки
GUICtrlCreateLabel ("Прочие твики", 30,40,450,20)
$checkCN101=GUICtrlCreateRadio("Autorun.inf - моя конфигурация (hdd/cd - включено)", 20,60,450,20)
GUICtrlSetState (-1,1)
$checkCN102=GUICtrlCreateRadio ("Autorun.inf - включить всё", 20,80,450,20)
$checkCN103=GUICtrlCreateRadio ("Autorun.inf - выключить всё", 20,100,450,20)
$vkladka03=GUICtrlCreateButton ("Применить", 390,280,93,24)
 
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
$tab3=GUICtrlCreateTabitem ("    ?") ; имя вкладки
GUICtrlCreateLabel ("В TweakerXP.ini можно указать параметры (url, сохранить как...)", 30,40,450,20)
 
GUICtrlCreateLabel ("AZJIO 24.8.2009", 380,280,97,22)
 
GUICtrlCreateTabitem ("")   ; конец вкладок
;===========================================================
; (2) устранение проблем интерфейса (цвет чекбоксов), проверка OS, для установки нужного индекса
Switch @OSVersion
    Case 'WIN_2000', 'WIN_XP', 'WIN_2003'
        $Part = 10
    Case Else
        $Part = 11
EndSwitch
$Color = _WinAPI_GetThemeColor($hTab, 'TAB', $Part, 1, 0x0EED)
If Not @error Then
    For $i = 1 To $aType[0]
    GUICtrlSetBkColor(Eval('checkType' & $i), $Color)
    Next
    For $i = 1 To 10
    GUICtrlSetBkColor(Eval('checkCN0' & $i), $Color)
    Next
    GUICtrlSetBkColor($checkall0, $Color)
    GUICtrlSetBkColor($checkall1, $Color)
    GUICtrlSetBkColor($checkCN101, $Color)
    GUICtrlSetBkColor($checkCN102, $Color)
    GUICtrlSetBkColor($checkCN103, $Color)
    GUICtrlSetBkColor($checkCN501, $Color)
    GUICtrlSetBkColor($checkCN601, $Color)
    GUICtrlSetBkColor($checkCN602, $Color)
EndIf
;===========================================================
GUISetState ()
 
    While 1
        $msg = GUIGetMsg()
        Select
            Case $msg = $restart
                _restart()
            Case $msg = $openini
                ShellExecute($Ini)
            Case $msg = $vkladka01
;Проверка чекбоксов и применение твиков на вкладке 1
                If GUICtrlRead ($checkCN01)=1 Then
                    RegWrite("HKCR\batfile\shell\edit\command","","REG_SZ",$notepad&' %1')
                    RegWrite("HKCR\cmdfile\shell\edit\command","","REG_SZ",$notepad&' %1')
                    RegWrite("HKCR\htmlfile\shell\Edit\command","","REG_SZ",$notepad&' %1')
                    RegWrite("HKCR\regfile\shell\edit\command","","REG_SZ",$notepad&' %1')
                    RegWrite("HKCR\txtfile\shell\edit\command","","REG_SZ",$notepad&' %1')
                    GUICtrlSetState($checkCN01, 132)
                EndIf
                If GUICtrlRead ($checkCN02)=1 Then
                    RegWrite("HKLM\SOFTWARE\Microsoft\Internet Explorer\View Source Editor\Editor Name","","REG_SZ",$notepad)
                    GUICtrlSetState($checkCN02, 132)
                EndIf
                If GUICtrlRead ($checkCN03)=1 Then
                    RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer","link","REG_BINARY",'00000000')
                    GUICtrlSetState($checkCN03, 132)
                EndIf
                If GUICtrlRead ($checkCN04)=1 Then
                    RegWrite("HKCR\Folder\shell\opennew","","REG_SZ",'Открыть в новом окне')
                    RegWrite("HKCR\Folder\shell\opennew","BrowserFlags","REG_DWORD",'10')
                    RegWrite("HKCR\Folder\shell\opennew","ExplorerFlags","REG_DWORD",'33')
                    RegWrite("HKCR\Folder\shell\opennew\command","","REG_EXPAND_SZ",'%SystemRoot%\Explorer.exe /idlist,%I,%L" & @lf & "')
                    RegWrite("HKCR\Folder\shell\opennew\ddeexec","","REG_SZ",'[ViewFolder("%l", %I, %S)]')
                    RegWrite("HKCR\Folder\shell\opennew\ddeexec","NoActivateHandler","REG_SZ",'')
                    RegWrite("HKCR\Folder\shell\opennew\ddeexec\application","","REG_SZ",'Folders')
                    RegWrite("HKCR\Folder\shell\opennew\ddeexec\ifexec","","REG_SZ",'[]')
                    RegWrite("HKCR\Folder\shell\opennew\ddeexec\topic","","REG_SZ",'AppProperties')
                    GUICtrlSetState($checkCN04, 132)
                EndIf
                If GUICtrlRead ($checkCN05)=1 Then
                    RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer","StartmenuLogoff","REG_DWORD",'1')
                    GUICtrlSetState($checkCN05, 132)
                EndIf
                If GUICtrlRead ($checkCN06)=1 Then
                    For $i = 1 to UBound($aURL) - 1
                        RegWrite("HKCU\Software\Microsoft\Internet Explorer\TypedURLs","url"& $i,"REG_SZ",Eval('Inigurl' & $i))
                    Next
                    GUICtrlSetState($checkCN06, 132)
                EndIf
                If GUICtrlRead ($checkCN07)=1 Then
                    $PlacesBar="HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\comdlg32\PlacesBar"
                    RegWrite($PlacesBar,"Place0","REG_SZ",$Inigpl0)
                    RegWrite($PlacesBar,"Place1","REG_SZ",$Inigpl1)
                    RegWrite($PlacesBar,"Place2","REG_SZ",$Inigpl2)
                    RegWrite($PlacesBar,"Place3","REG_SZ",$Inigpl3)
                    RegWrite($PlacesBar,"Place4","REG_SZ",$Inigpl4)
                    GUICtrlSetState($checkCN07, 132)
                EndIf
                If GUICtrlRead ($checkCN08)=1 Then
                    $aPrint = StringSplit( "reg|txt|log|cmd|bat|fon|inf|ini", "|")
                    For $i = 1 To $aPrint[0]
                        RegDelete('HKCR\'&$aPrint[$i]&'file\shell\print')
                    Next
                    GUICtrlSetState($checkCN08, 132)
                EndIf
                If GUICtrlRead ($checkCN09)=1 Then
                    RegWrite("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager","BootExecute","REG_EXPAND_SZ",'autocheck autochk /K:CDEFGHIJKLMNOPQRSTUVWXYZ *')
                    GUICtrlSetState($checkCN09, 132)
                EndIf
                If GUICtrlRead ($checkCN010)=1 Then
                    RegWrite("HKCU\Software\Microsoft\Windows\ShellNoRoam\MUICache","@C:\WINDOWS\system32\notepad.exe,-469","REG_SZ",GUICtrlRead ($crtextfl))
                    GUICtrlSetState($checkCN010, 132)
                EndIf
 
            ; Выделить/отменить выделение всех на вкладке 1 - Общие
        Case $msg = $checkall0
            If GUICtrlRead($checkall0)=1 Then
                $p=1
            Else
                $p=4
            EndIf
            For $i = 1 To 10
                GuiCtrlSetState(Eval('checkCN0' & $i), $p)
            Next
            Case $msg = $tabBut04
                RegDelete("HKCR\Folder\shell\opennew")
            Case $msg = $tabBut07
                RegDelete("HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\comdlg32\PlacesBar")
            Case $msg = $tabBut09
                RegWrite("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager","BootExecute","REG_EXPAND_SZ",'autocheck autochk *')
 
;удаление создания указанных типов файлов на вкладке New *.*
            Case $msg = $vkladka02
            For $i = 1 To $aType[0]
                If GUICtrlRead (Eval('checkType' & $i))=1 Then
                    If StringInStr("doc|docx|ppt|pptx|xls|xlsx", $aType[$i])=0 Then
                        RegDelete('HKCR\.'&$aType[$i]&'\ShellNew')
                        GUICtrlSetState(Eval('checkType' & $i), 4)
                    Else
                        Switch $aType[$i]
                            Case 'doc'
                                RegDelete("HKCR\.doc\Word.Document.6\ShellNew")
                                RegDelete("HKCR\.doc\Word.Document.8\ShellNew")
                                RegDelete("HKCR\.doc\WordDocument\ShellNew")
                                RegDelete("HKCR\.doc\Word.Document.1\ShellNew")
                                RegDelete('HKCR\.doc\ShellNew')
                                GUICtrlSetState(Eval('checkType' & $i), 4)
                            Case 'docx'
                                RegDelete("HKCR\.docx\Word.Document.12\ShellNew")
                                GUICtrlSetState(Eval('checkType' & $i), 4)
                            Case 'ppt'
                                RegDelete("HKCR\.ppt\PowerPoint.Show.4\ShellNew")
                                RegDelete("HKCR\.ppt\PowerPoint.Show.8\ShellNew")
                                GUICtrlSetState(Eval('checkType' & $i), 4)
                            Case 'pptx'
                                RegDelete("HKCR\.pptx\PowerPoint.Show.12\ShellNew")
                                GUICtrlSetState(Eval('checkType' & $i), 4)
                            Case 'xls'
                                RegDelete("HKCR\.xls\Excel.Sheet.5\ShellNew")
                                RegDelete("HKCR\.xls\Excel.Sheet.8\ShellNew")
                                RegDelete("HKCR\.xls\ExcelWorksheet\ShellNew")
                                GUICtrlSetState(Eval('checkType' & $i), 4)
                            Case 'xlsx'
                                RegDelete("HKCR\.xlsx\Excel.Sheet.12\ShellNew")
                                GUICtrlSetState(Eval('checkType' & $i), 4)
                        EndSwitch
                    EndIf
                EndIf
            Next
            $Ltype0=GUICtrlRead ($Ltype)
            If $Ltype0<>'' Then RegDelete('HKCR\.'&$Ltype0&'\ShellNew')
 
;Восстановление создания указанных типов файлов на вкладке New *.*
            Case $msg = $vkladka02Cr
            For $i = 1 To $aType[0]
                If GUICtrlRead (Eval('checkType' & $i))=1 Then
                    If StringInStr("doc|docx|ppt|pptx|xls|xlsx", $aType[$i])=0 Then
                        RegRead('HKCR\.'&$aType[$i], '')
                        If @error=1 Then
                            MsgBox(0, "Сообщение", 'Тип файла '&$aType[$i]&' не зарегистрирован')
                            Else
                            RegWrite('HKCR\.'&$aType[$i]&'\ShellNew','NullFile','REG_SZ','')
                            GUICtrlSetState(Eval('checkType' & $i), 4)
                        EndIf
                    Else
                        Switch $aType[$i]
                            Case 'doc'
                                RegRead('HKCR\.doc', '')
                                If @error=1 Then
                                    MsgBox(0, "Сообщение", 'Тип файла '&$aType[$i]&' не зарегистрирован')
                                Else
                                    RegWrite('HKCR\.doc\Word.Document.6\ShellNew','NullFile','REG_SZ','')
                                    RegWrite('HKCR\.doc\Word.Document.8\ShellNew','NullFile','REG_SZ','')
                                    RegWrite('HKCR\.doc\WordDocument\ShellNew','NullFile','REG_SZ','')
                                    RegWrite('HKCR\.doc\Word.Document.1\ShellNew','NullFile','REG_SZ','')
                                    RegWrite('HKCR\.doc\ShellNew')
                                    GUICtrlSetState(Eval('checkType' & $i), 4)
                                EndIf
                            Case 'docx'
                                RegRead('HKCR\.docx', '')
                                If @error=1 Then
                                    MsgBox(0, "Сообщение", 'Тип файла '&$aType[$i]&' не зарегистрирован')
                                Else
                                RegWrite('HKCR\.docx\Word.Document.12\ShellNew','NullFile','REG_SZ','')
                                GUICtrlSetState(Eval('checkType' & $i), 4)
                                EndIf
                            Case 'ppt'
                                RegRead('HKCR\.ppt', '')
                                If @error=1 Then
                                    MsgBox(0, "Сообщение", 'Тип файла '&$aType[$i]&' не зарегистрирован')
                                Else
                                RegWrite('HKCR\.ppt\PowerPoint.Show.4\ShellNew','NullFile','REG_SZ','')
                                RegWrite('HKCR\.ppt\PowerPoint.Show.8\ShellNew','NullFile','REG_SZ','')
                                GUICtrlSetState(Eval('checkType' & $i), 4)
                                EndIf
                            Case 'pptx'
                                RegRead('HKCR\.pptx', '')
                                If @error=1 Then
                                    MsgBox(0, "Сообщение", 'Тип файла '&$aType[$i]&' не зарегистрирован')
                                Else
                                RegWrite('HKCR\.pptx\PowerPoint.Show.12\ShellNew','NullFile','REG_SZ','')
                                GUICtrlSetState(Eval('checkType' & $i), 4)
                                EndIf
                            Case 'xls'
                                RegRead('HKCR\.xls', '')
                                If @error=1 Then
                                    MsgBox(0, "Сообщение", 'Тип файла '&$aType[$i]&' не зарегистрирован')
                                Else
                                RegWrite('HKCR\.xls\Excel.Sheet.5\ShellNew','NullFile','REG_SZ','')
                                RegWrite('HKCR\.xls\Excel.Sheet.8\ShellNew','NullFile','REG_SZ','')
                                RegWrite('HKCR\.xls\ExcelWorksheet\ShellNew','NullFile','REG_SZ','')
                                GUICtrlSetState(Eval('checkType' & $i), 4)
                                EndIf
                            Case 'xlsx'
                                RegRead('HKCR\.xlsx', '')
                                If @error=1 Then
                                    MsgBox(0, "Сообщение", 'Тип файла '&$aType[$i]&' не зарегистрирован')
                                Else
                                RegWrite('HKCR\.xlsx\Excel.Sheet.12\ShellNew','NullFile','REG_SZ','')
                                GUICtrlSetState(Eval('checkType' & $i), 4)
                                EndIf
                        EndSwitch
                    EndIf
                EndIf
            Next
 
            $Ltype0=GUICtrlRead ($Ltype)
            If $Ltype0<>'' Then
                        RegRead('HKCR\.'&$Ltype0, '')
                        If @error=1 Then
                            MsgBox(0, "Сообщение", 'Тип файла '&$Ltype0&' не зарегистрирован')
                            Else
                            RegWrite('HKCR\.'&$Ltype0&'\ShellNew','NullFile','REG_SZ','')
                        EndIf
            EndIf
 
            ; Выделить/отменить выделение всех на вкладке "New *.*"
        Case $msg = $checkall1
            If GUICtrlRead($checkall1)=1 Then
                $p=1
            Else
                $p=4
            EndIf
            For $i = 1 To $aType[0]
                GuiCtrlSetState(Eval('checkType' & $i), $p)
            Next
 
; вкладка "Прочие"
            Case $msg = $vkladka03
                If GUICtrlRead ($checkCN101)=1 Then
                    RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer","NoDriveTypeAutoRun","REG_DWORD",'000000F5')
                    RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\Cdrom","AutoRun","REG_DWORD",'1')
                    RegWrite("HKLM\SYSTEM\ControlSet001\Services\Cdrom","AutoRun","REG_DWORD",'1')
                EndIf
                ; включаем все автораны
                If GUICtrlRead ($checkCN102)=1 Then
                    RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer","NoDriveTypeAutoRun","REG_DWORD",'00000000')
                    RegDelete("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\CancelAutoplay\Files", "*.*")
                    RegDelete("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf", "")
                    RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\Cdrom","AutoRun","REG_DWORD",'1')
                    RegWrite("HKLM\SYSTEM\ControlSet001\Services\Cdrom","AutoRun","REG_DWORD",'1')
                EndIf
                ; отключаем все автораны
                If GUICtrlRead ($checkCN103)=1 Then
                    RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer","NoDriveTypeAutoRun","REG_DWORD",'000000FF')
                    RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\CancelAutoplay\Files","*.*","REG_SZ",'')
                    RegWrite("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf",'',"REG_SZ",'@SYS:DoesNotExist')
                    RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\Cdrom","AutoRun","REG_DWORD",'1') ; в 0 ставить нельзя, CD диск после смены не будет обновлять содержимое
                    RegWrite("HKLM\SYSTEM\ControlSet001\Services\Cdrom","AutoRun","REG_DWORD",'1')
                EndIf
 
; начало вкладки User
            Case $msg = $UserButRm
               $usersprofiles01=GUICtrlRead ($usersprofiles)
               $bykva01=GUICtrlRead ($bykva)
               $PathUP=$bykva01&':\MyDocum\Profiles\'&$usersprofiles01
               MsgBox(0, "Справка", 'Смена пути к папкам пользователя нужна в случае, если для системного диска С: создан образ восстановления, который при восстановлении затирает содержимое диска С, в том числе и "Мои документы", файлы на Рабочем столе, ссылки в папке Избранное, Cookies - авторизация на сайтах. Чтобы не потерять свои файлы создаём некоторые каталоги пользователя на втором логическом диске D, и прописываем пути в реестр. Каталоги создаются автоматически'&@LF&'Вот пути к будущим каталогам'&@LF&'Мои документы - '&$bykva01&':\Мои документы'&@LF&'TEMP и TMP - '&$PathUP&'\Temp'&@LF&'Cookies - '&$PathUP&'\Cookies'&@LF&'Рабочий стол - '&$PathUP&'\Рабочий стол'&@LF&'Избранное - '&$PathUP&'\Избранное'&@LF&'SendTo - '&$PathUP&'\SendTo'&@LF&'Temporary Internet Files - '&$PathUP&'\Temporary Internet Files'&@LF&'History - '&$PathUP&'\History'&@LF&'Рабочий стол для всех - '&$PathUP&'\Рабочий стол 2')
            Case $msg = $vkladka011
               $usersprofiles01=GUICtrlRead ($usersprofiles)
               $bykva01=GUICtrlRead ($bykva)
               $PathUP=$bykva01&':\MyDocum\Profiles\'&$usersprofiles01
               ; Создание каталогов
               If Not FileExists($bykva01&':\Мои документы') Then DirCreate($bykva01&':\Мои документы')
               If Not FileExists($PathUP&'\Temp') Then DirCreate($PathUP&'\Temp')
               If Not FileExists($PathUP&'\Рабочий стол') Then DirCreate($PathUP&'\Рабочий стол')
               If Not FileExists($PathUP&'\Избранное') Then DirCreate($PathUP&'\Избранное')
               If Not FileExists($PathUP&'\SendTo') Then DirCreate($PathUP&'\SendTo')
               If Not FileExists($PathUP&'\Temporary Internet Files') Then DirCreate($PathUP&'\Temporary Internet Files')
               If Not FileExists($PathUP&'\History') Then DirCreate($PathUP&'\History')
               If Not FileExists($PathUP&'\Рабочий стол 2') Then DirCreate($PathUP&'\Рабочий стол 2')
               ; Изменить пути в реестре
RegWrite("HKCU\Environment","TEMP","REG_EXPAND_SZ",$PathUP&'\Temp')
RegWrite("HKCU\Environment","TMP","REG_EXPAND_SZ",$PathUP&'\Temp')
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Personal","REG_SZ",$bykva01&':\Мои документы')
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Cookies","REG_SZ",$PathUP&'\Cookies')
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Desktop","REG_SZ",$PathUP&'\Рабочий стол')
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Favorites","REG_SZ",$PathUP&'\Избранное')
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","SendTo","REG_SZ",$PathUP&'\SendTo')
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Cache","REG_SZ",$PathUP&'\Temporary Internet Files')
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","History","REG_SZ",$PathUP&'\History')
 
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders","Personal","REG_SZ",$bykva01&':\Мои документы')
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders","Desktop","REG_EXPAND_SZ",$PathUP&'\Рабочий стол')
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders","Favorites","REG_EXPAND_SZ",$PathUP&'\Избранное')
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders","SendTo","REG_EXPAND_SZ",$PathUP&'\SendTo')
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders","Cache","REG_EXPAND_SZ",$PathUP&'\Temporary Internet Files')
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders","Cookies","REG_EXPAND_SZ",$PathUP&'\Cookies')
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders","History","REG_EXPAND_SZ",$PathUP&'\History')
RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Common Desktop","REG_SZ",$PathUP&'\Рабочий стол 2')
RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders","Common Desktop","REG_SZ",$PathUP&'\Рабочий стол 2')
RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Paths","Directory","REG_SZ",$PathUP&'\Temporary Internet Files\Content.IE5')
RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Paths\path1","CachePath","REG_SZ",$PathUP&'\Temporary Internet Files\Content.IE5\Cache1')
RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Paths\path2","CachePath","REG_SZ",$PathUP&'\Temporary Internet Files\Content.IE5\Cache2')
RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Paths\path3","CachePath","REG_SZ",$PathUP&'\Temporary Internet Files\Content.IE5\Cache3')
RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Paths\path4","CachePath","REG_SZ",$PathUP&'\Temporary Internet Files\Content.IE5\Cache4')
                If GUICtrlRead ($checkCN501)=1 Then
                  FileCreateShortcut(@WindowsDir&'\explorer.exe',@AppDataDir&'\Microsoft\Internet Explorer\Quick Launch\Мои документы.lnk',@WindowsDir,@MyDocumentsDir,'Мои документы',@SystemDir&'\SHELL32.dll','',126)
               If Not FileExists($bykva01&':\Рисунки') Then DirCreate($bykva01&':\Рисунки')
               If Not FileExists($bykva01&':\Музыка') Then DirCreate($bykva01&':\Музыка')
               If Not FileExists($bykva01&':\Фильмы') Then DirCreate($bykva01&':\Фильмы')
               If Not FileExists($bykva01&':\Games') Then DirCreate($bykva01&':\Games')
                  FileCreateShortcut(@WindowsDir&'\explorer.exe',@AppDataDir&'\Microsoft\Internet Explorer\Quick Launch\Рисунки.lnk',@WindowsDir,$bykva01&':\Рисунки','Рисунки',@SystemDir&'\SHELL32.dll','',127)
                  FileCreateShortcut(@WindowsDir&'\explorer.exe',@AppDataDir&'\Microsoft\Internet Explorer\Quick Launch\Музыка.lnk',@WindowsDir,$bykva01&':\Музыка','Музыка',@SystemDir&'\SHELL32.dll','',128)
                  FileCreateShortcut(@WindowsDir&'\explorer.exe',@AppDataDir&'\Microsoft\Internet Explorer\Quick Launch\Фильмы.lnk',@WindowsDir,$bykva01&':\Фильмы','Фильмы',@SystemDir&'\SHELL32.dll','',129)
                EndIf
            Case $msg = $vkladka601
; создане ярлыков "Выкл", "Перезагруз".
                If GUICtrlRead ($checkCN601)=1 Then
                  FileCreateShortcut(@SystemDir&'\shutdown.exe',@DesktopDir&'\Перезагр.lnk',@SystemDir,'-r -t 00 -f','Перезагрузка компьютера',@SystemDir&'\SHELL32.dll','',44)
                  FileCreateShortcut(@SystemDir&'\shutdown.exe',@DesktopDir&'\Выкл.lnk',@SystemDir,'-s -t 00 -f','Выключение компьютера',@SystemDir&'\SHELL32.dll','',27)
                  GUICtrlSetState($checkCN601, 4)
                EndIf
                If GUICtrlRead ($checkCN602)=1 Then
                    $Path=FileGetLongName(StringRegExpReplace(@TempDir, '(^.*)\\(.*)$', '\1'))
                    $TempFile = FileOpen($Path&'\CleanTemp.cmd',2)
                    FileWrite($TempFile, 'CD /d "%tmp%"&RD /S /Q "%~d0"' )
                    FileClose($TempFile)
                    FileCreateShortcut('"'&$Path&'\CleanTemp.cmd"',@DesktopDir&'\Очистить Temp.lnk','"'&$Path&'"','','Очистить папку Temp, удалив временные файлы. Выполнять при закрытых программах',@SystemDir&'\cleanmgr.exe','',0)
                    GUICtrlSetState($checkCN602, 4)
                EndIf
            Case $msg = -3
                Exit
        EndSelect
    WEnd
 
Func _restart()
    Local $sAutoIt_File = @TempDir & "\~Au3_ScriptRestart_TempFile.au3"
    Local $sRunLine, $sScript_Content, $hFile
 
    $sRunLine = @ScriptFullPath
    If Not @Compiled Then $sRunLine = @AutoItExe & ' /AutoIt3ExecuteScript ""' & $sRunLine & '""'
    If $CmdLine[0] > 0 Then $sRunLine &= ' ' & $CmdLineRaw
 
    $sScript_Content &= '#NoTrayIcon' & @CRLF & _
    'While ProcessExists(' & @AutoItPID & ')' & @CRLF & _
    '   Sleep(10)' & @CRLF & _
    'WEnd' & @CRLF & _
    'Run("' & $sRunLine & '")' & @CRLF & _
    'FileDelete(@ScriptFullPath)' & @CRLF
 
    $hFile = FileOpen($sAutoIt_File, 2)
    FileWrite($hFile, $sScript_Content)
    FileClose($hFile)
 
    Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $sAutoIt_File & '"', @ScriptDir, @SW_HIDE)
    Sleep(1000)
    Exit
EndFunc
 
;===========================================================
; (3) устранение проблем интерфейса, обязательные три (сократил до одной) функции, скопированные из WinAPIEx.au3 ("Global $__RGB = True" - уже не нужен)
Func _WinAPI_GetThemeColor($hWnd, $sClass, $iPart, $iState, $iProp)
    Local $hTheme = DllCall('uxtheme.dll', 'ptr', 'OpenThemeData', 'hwnd', $hWnd, 'wstr', $sClass)
    Local $Ret = DllCall('uxtheme.dll', 'lresult', 'GetThemeColor', 'ptr', $hTheme[0], 'int', $iPart, 'int', $iState, 'int', $iProp, 'dword*', 0)
 
    If (@error) Or ($Ret[0] < 0) Then
        $Ret = -1
    EndIf
    DllCall('uxtheme.dll', 'lresult', 'CloseThemeData', 'ptr', $hTheme[0])
    If $Ret = -1 Then
        Return SetError(1, 0, -1)
    EndIf
    Return SetError(0, 0, BitOR(BitAND($Ret[5], 0x00FF00), BitShift(BitAND($Ret[5], 0x0000FF), -16), BitShift(BitAND($Ret[5], 0xFF0000), 16)))
EndFunc   ;==>_WinAPI_GetThemeColor
;===========================================================

Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 16:57 09-04-2009 | Исправлено: AZJIO, 17:52 05-05-2010
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 2)
Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru