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

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

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

gyra (23-01-2020 10:51): AutoIT (Часть 4)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
Описание:

Цитата:
AutoIt v3 - это язык для написания сценариев, напоминающий BASIC. Основным его назначением является автоматизация работ с Windows GUI (графическим интерфейсом пользователя MS Windows). Для выполнения этой сложной задачи предоставляется комбинация испытанных методов, включающих в себя эмуляцию нажатий комбинаций клавиш клавиатуры, перемещения указателя мыши, управление окнами и их визуальными элементами. Как показывает практика, эти "приводные ремни" весьма эффективны для получения работающих решений в ситуациях, когда другие стандартные средства (например, VBScript и SendKeys) оказываются бессильны.
Умеет он очень и очень многое! Бесплатный.

 
  • Справки
  • Инструменты
  • Ресурсы, посвящённые AutoIt
  • Полезные советы новичкам и не только
  • Готовые решения
  • Скрипт раскраски кода AutoIt для публикации в форумах
     


     
    За шапкой следит ViSiToR / AZJIO  

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 13:07 01-06-2010 | Исправлено: Maz, 12:29 10-01-2020
    kemerovo_man

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть окно с запросом пароля, оно выскакивает до страницы приветствия виндоуз, т.е. до логона пользователя в винду (не знаю как это сделано, может подскажете куда копать)... реально ли в это окно автоитом этот пароль отправить? я так понимаю надо автоит-скрипт как службу запустить, но мои эксперименты оказались неудачными... скрипт который удачно отправляет в окно текст, будучи запущенный как служба этого не делает...
    Подскажите, пожалуйста...

    Всего записей: 6 | Зарегистр. 12-05-2012 | Отправлено: 09:42 16-11-2013
    Skif_off

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

    Цитата:
    отписал пока здесь

    Я там не зареган, но предлагаю увеличить pagefile.sys до 3 Гб или уменьшить до 1 Гб.
    Total Pagefile можно перевести как Всего страниц памяти и это будет как раз виртуальная: физическая + файл подкачки.

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 18:24 17-11-2013 | Исправлено: Skif_off, 18:26 17-11-2013
    m0rh0ld



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    [q][/q]
    m0rh0ld
    Вопрос решен, нашел решение проще - Application Brute Forcer  

    Всего записей: 12 | Зарегистр. 27-10-2007 | Отправлено: 14:46 19-11-2013
    Artem_Butenko



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребята, прошу Вашего совета. Возникла задача поиска и последующего удаления в системном реестре однотипных ключей, расположенных в разных ветках. А также поиск определенных параметров ключей в системном реестре, с последующей заменой (модификацией) их значений на требуемые или удалением значений этих ключей вовсе. Буду очень благодарен Вам за помощь.

    Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 04:54 26-11-2013
    NIKZZZZ



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

    Цитата:
    Возникла задача поиска и последующего удаления в системном реестре однотипных ключей

    Маленькая болванка

    Код:
    Func REGREPLACE($KEY)
        Local $I, $TEMP, $VALUENAME, $VALUE, $VALUETYPE
        $I = 0
        While 1
            $I += 1
            $VALUENAME = RegEnumVal($KEY, $I)
            If @error Then ExitLoop
            $VALUE = RegRead($KEY, $VALUENAME)
            $VALUETYPE = @extended
            ;здесь обработка ключей в зависимости от $VALUETYPE
            Switch $VALUETYPE
                Case 1, 2, 7
                Case 4
                Case 3
                Case Else
            EndSwitch
        WEnd
        $I = 0
        While 1
            $I += 1
            $TEMP = RegEnumKey($KEY, $I)
            If @error Then ExitLoop
            REGREPLACE($KEY & "\" & $TEMP)
        WEnd
        Return
    EndFunc

     
    Рекурсивный поиск и обработка веток реестра начиная с $KEY

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 08:09 26-11-2013 | Исправлено: NIKZZZZ, 08:14 26-11-2013
    Zakkazak



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В PowerPro есть такая фича как задвигать тулбары за границы экрана, при наведении указателя на край задвинутого тулбара, выдвигаеться из-за экрана.  
     
    Поискал в оффициальном форуме не нашел такого скрипта.  Вообще возможно такое в AutoIt и насколько это трудно?

    Всего записей: 995 | Зарегистр. 12-01-2005 | Отправлено: 08:42 26-11-2013 | Исправлено: Zakkazak, 08:43 26-11-2013
    Artem_Butenko



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
     
    Извините меня за глупый вопрос, можно привести пару примеров использования скрипта для удаления найденных ключей и замены значений параметров?

    Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 10:57 26-11-2013
    NIKZZZZ



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

    Цитата:
    можно привести пару примеров использования скрипта для удаления найденных ключей и замены значений параметров?

    Немного конкретнее, что удалять ? На что заменять?

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 11:07 26-11-2013
    Artem_Butenko



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
     
    Во-первых, рекурсивно найти ветки оканчивающиеся на "145689" (HKEY_LOCAL_MACHINE\Software\145689, HKEY_CURRENT_USER\Software\145689, HKEY_USERS\S-1-5-21-839522115-329068152-1417001333-1006\Software\145689 и т.д.) и удалить их полностью. Во-вторых, рекурсивно найти параметр "InstallDir1265" и заменить значение параметра на требуемое (например, "C:\Test\Test1" на "C:\Test\Test2") или вовсе удалить это значение. Большое Вам человеческое спасибо за ценные советы.

    Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 11:31 26-11-2013 | Исправлено: Artem_Butenko, 12:30 26-11-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Artem_Butenko
    Вот я писал _RegSearch.
     
    Zakkazak
    Есть такое, но под него можно понимать разные варианты.
     
    Есть от Melba23

    Цитата:
    Notify всплывающие друг над другом сообщения возле трея (как в клиентах общения - миранда)
    http://www.autoitscript.com/forum/topic/136149-notify-new-version-7-jan-12/
     
    Toast всплывающие сообщения
    http://www.autoitscript.com/forum/topic/108445-how-to-make-toast-new-version-13-feb-12/

     
    Можешь сделать поиск скрипта "Example _WinAnimate.au3" в коллекции скриптов
     
    И анимация выдвигания при наведении к краю в ButtonBar, создаёт прозрачный GUI в 1 пиксель с краю и ловит его. Фича в том что при полноэкранном режиме не сворачивает игру при выезжании нового окна.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 22:37 26-11-2013 | Исправлено: AZJIO, 22:53 26-11-2013
    NIKZZZZ



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

    Код:
    $KEY="hklm\...." ;ветка поиска
    REGREPLACE($KEY)
    Exit
    Func REGREPLACE($KEY)
        Local $I, $TEMP, $VALUENAME, $VALUE, $VALUETYPE
        $I = 0
        While 1
            $I += 1
            $VALUENAME = RegEnumVal($KEY, $I)
            If @error Then ExitLoop
            $VALUE = RegRead($KEY, $VALUENAME)
            $VALUETYPE = @extended
            ;здесь обработка ключей в зависимости от $VALUETYPE
            Switch $VALUETYPE
                Case 1, 2, 7
                ;Замена  "C:\Test\Test1" на "C:\Test\Test2"
                If StringInStr($VALUE,"C:\Test\Test1") Then
                    $VALUE=StringReplace($VALUE,"C:\Test\Test1","C:\Test\Test2")
                    RegWrite($KEY, $VALUENAME,$VALUE)
                EndIf
                Case 4
                Case 3
                Case Else
            EndSwitch
            ;Удаление ..\145689
            If StringRight($KEY,StringLen("\145689"))="\145689" Then
                RegDelete("$KEY")
            EndIf
        WEnd
        $I = 0
        While 1
            $I += 1
            $TEMP = RegEnumKey($KEY, $I)
            If @error Then ExitLoop
            REGREPLACE($KEY & "\" & $TEMP)
        WEnd
        Return
    EndFunc   ;==>REGREPLACE

     
     
     
    Добавлено:
    Исправил баг DebugMsgBoxAdd() и DebugConsoleWriteAdd() - портилось @Error при отладке.
    AutoItTools.lua

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 23:59 26-11-2013 | Исправлено: NIKZZZZ, 01:22 27-11-2013
    Zakkazak



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Спасибо ! демонстрации впечатляют .. Честно говоря , я склонялся больше в сторону PowerPro и AutoHotkey, считая их более прикладнымы, но после просмотра демонстраций мнение изменилоь.

    Всего записей: 995 | Зарегистр. 12-01-2005 | Отправлено: 03:30 27-11-2013
    Artem_Butenko



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ, AZJIO
     
    Большое Вам спасибо ребята за Вашу ценную помощь.
     
    NIKZZZZ
     
    Будьте добры, пожалуйста поясните последний момент, каким образом в контексте предложенного Вами скрипта произвести рекурсивно полное удаление параметра?

    Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 00:27 28-11-2013 | Исправлено: Artem_Butenko, 00:28 28-11-2013
    NIKZZZZ



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

    Цитата:
    произвести рекурсивно полное удаление параметра?

     
    Аналогично "Удаление ..\145689"  

    Код:
     
            If $VALUENAME="Имя удаляемого параметра" Then
                RegDelete($KEY, $VALUENAME)
            EndIf
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 10:50 28-11-2013
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Artem_Butenko,
    Если объем достаточно большой, то с API (Registry Functions) будет значительно быстрее.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 21:57 28-11-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос решён
     
    Есть ли у кого готовый вариант парсинга такой конструкции?

    Код:
    ; #FUNCTION# =============
    ; Name...........: _GDIPlus_LineBrushSetBlend
    ; Description ...: Sets the blend factors and the blend positions of a linear gradient brush to create a custom blend
    ; Syntax.........: _GDIPlus_LineBrushSetBlend($hLineGradientBrush, $aBlends)
    ; Parameters ....: $hLineGradientBrush - Pointer
    ; Return values .: Success      - True
    ; Remarks .......: Each
    ; Related .......: _GDIPlus_LineBrushGetBlend
    ; Link ..........; @@MsdnLink@@ GdipSetLineBlend
    ; Example .......; No
    ; =========

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

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 19:54 29-11-2013 | Исправлено: AZJIO, 22:40 29-11-2013
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста:

    Код:
    $sPath = $CmdLine[1]
    $sFileName = ""
    $sText = _ClipBoard_GetData()
     
    If StringInStr($sText, @CRLF) > 0 Then
        $sDelims = @CRLF
    Else
        $sDelims = @LF
    EndIf
     
    $aLines = StringSplit($sText, $sDelims, 1)

    возможно ли задать для StringSplit не более 10 первых строк, например, а не все? Наверное, с учетом @CRLF лучше пару десятков.
    Так понимаю, количество строк можно узнать по первому элементу массива $aLines[0], а вот дальше что-то затупил.

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 20:46 08-12-2013 | Исправлено: Skif_off, 20:55 08-12-2013
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off,
    Пример:
    Код:
    #include <Array.au3>
     
    Local $sStr, $aStr, $sDelim, $iCount = 10, $sTmpStr, $aDelim[3] = [@CRLF, @CR, @LF], $iRand = Random(0, 2, 1)
     
    For $i = 1 To Random(50, 100, 1)
        $sStr &= $i & $aDelim[$iRand]
    Next
     
    Select
        Case StringInStr($sStr, @CRLF)
            $sDelim = @CRLF
            ConsoleWrite('$sDelim = @CRLF' & @LF)
        Case StringInStr($sStr, @CR)
            $sDelim = @CR
            ConsoleWrite('$sDelim = @CR' & @LF)
        Case StringInStr($sStr, @LF)
            $sDelim = @LF
            ConsoleWrite('$sDelim = @LF' & @LF)
        Case Else
            Exit 13
    EndSelect
    ;~ 1 variant:
    ;~ a:
    $sTmpStr = StringLeft($sStr, StringInStr($sStr, $sDelim, 0, $iCount) - 1)
    $aStr = StringSplit($sTmpStr, $sDelim, 1)
    _ArrayDisplay($aStr, '1.a')
    ;~ b:
    $aStr = StringSplit($sTmpStr, $sDelim, 3)
    _ArrayDisplay($aStr, '1.b')
     
    ;~ 2 variant:
    ;~ a:
    $aStr = StringSplit($sStr, $sDelim, 1)
    If $aStr[0] > $iCount Then
        ReDim $aStr[$iCount + 1]
        $aStr[0] = $iCount
    EndIf
    _ArrayDisplay($aStr, '2.a')
    ;~ b:
    $aStr = StringSplit($sStr, $sDelim, 3)
    If UBound($aStr) > $iCount Then
        ReDim $aStr[$iCount]
    EndIf
    _ArrayDisplay($aStr, '2.b')

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 12:05 10-12-2013
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
    Спасибо, попробую разобраться. Не совсем понятно: разве StringInStr($sStr, @CR) не найдет @CRLF? Туплю, @CRLF будет найдено ранее StringInStr($sStr, @CRLF)

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 14:31 10-12-2013 | Исправлено: Skif_off, 14:32 10-12-2013
    Dime3us

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите сделать нехитрую штуку
    Нужно чтобы по нажатию некоторой клавиши эмулировалось нажатие других клавиш, скажем по нажатию F5 отправить cntrl+x 1000 раз, потом просто ждать следующего нажатия.
    Про Send и хоткейсет почитал, но что то не соображу как это оформить.

    Всего записей: 119 | Зарегистр. 29-09-2005 | Отправлено: 12:18 13-12-2013
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)
    gyra (23-01-2020 10:51): AutoIT (Часть 4)


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru