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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Scampy



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем доброго времени суток! Помогите со скриптом для K-lite:

    Код:
    Runwait('klite\klite.exe')

    Требуется чтобы файл запускался с ключом:
    /verysilent /norestart /LoadInf=".\settings.ini"

    Всего записей: 162 | Зарегистр. 10-10-2008 | Отправлено: 15:34 29-10-2013
    NIKZZZZ



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

    Цитата:
    Требуется чтобы файл запускался с ключом:  

    Ну, кто мешает ?

    Код:
    Runwait('klite\klite.exe /verysilent /norestart /LoadInf=".\settings.in')  

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 15:46 29-10-2013
    Scampy



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

    Цитата:
    Ну, кто мешает ?  

    Вот блин... мне казалось нужно всякие кавычки дополнительные прописывать, а как изначально и не попробовал даже )))
    Спасибо

    Всего записей: 162 | Зарегистр. 10-10-2008 | Отправлено: 16:00 29-10-2013
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Если кто пользует AkelPad, небольшое уточнение au3.coder.

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 09:53 31-10-2013
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    comrades, подскажите, пожалуйста, как сделать правильнее (хотя не уверен, что вопрос в тему):
    есть скрипт для декодирования base64/uue из буфера обмена, скрипту в качестве параметра передается путь

    Код:
    #NoTrayIcon
     
    $sPath = $CmdLine[1]
     
    $sText = _ClipBoard_GetData()
     
    Local $sSearchedB = "Content-Transfer-Encoding: base64", $sSearchedU = "begin ([0-9]{1,5}?) "
    $aLines = StringSplit($sText, @CRLF, 1)
     
    For $i = 1 To $aLines[0]
        If StringInStr($aLines[$i], $sSearchedB) Then
            $sFileAtt = _FileNameB($aLines)
            $sFileName = $sFileAtt & ".b64"
            ExitLoop
        EndIf
    Next
     
    For $i = 1 To $aLines[0]
        If StringRegExp($aLines[$i], $sSearchedU) Then
            $sFileAtt = StringRegExpReplace($aLines[$i], $sSearchedU, "")
            $sFileName = $sFileAtt & ".uue"
            ExitLoop
        EndIf
    Next
     
    $sFile = FileOpen($sPath & $sFileName, 1)
     
    If $sFile = -1 Then
        MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
        Exit
    EndIf
     
    FileWrite($sFile, $sText)
    FileClose($sFile)
     
    RunWait(@ScriptDir & '\uudeview.exe ' & '"' & $sPath & $sFileName & '"' & ' -p ' & $sPath & ' -q -i', "", @SW_HIDE)
    FileDelete($sPath & $sFileName)
    Exit
     
    Func _FileNameB($aLines)
        Local $sSearchedB2 = "Content-Disposition: attachment"
        For $i = 1 To $aLines[0]
            If StringInStr($aLines[$i], $sSearchedB2) Then
                $sFileName = StringReplace($aLines[$i], 'Content-Disposition: attachment; filename=', "")
                $sFileName = StringReplace($sFileName, '"', "")
                ExitLoop
            ElseIf @error = 0 Then
                $sFileName = "UNKNOWN.001"
                ExitLoop
            EndIf
        Next
        Return $sFileName
    EndFunc

     
    столкнулся с проблемой разделителя для команды StringSplit -  @CRLF взял из какого-то примера, но если тип окончания строки Unix, то все содержимое буфера попадает в одну строку массива, что неприемлемо. Изменил на @CR, но не понимаю, чем это потенциально грозит?

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 20:53 09-11-2013 | Исправлено: Skif_off, 21:03 09-11-2013
    NIKZZZZ



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

    Цитата:
    столкнулся с проблемой разделителя для команды StringSplit

    А кто мешает это проверить ?

    Код:
    If StringInStr($sText,@CRLF)>0 Then
      $sDelims=@CRLF
    Else
       $sDelims=@CR
    EndIf

     
    Добавлено:
    Skif_off
    К стати, есть UDF, использовать uudeview.exe совершенно не нужно.

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

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

    Цитата:
    А кто мешает это проверить?

    Спасибо, добавил. Вроде начинает доходить, всегда путался с переводом строк.

    Цитата:
    К стати, есть UDF, использовать uudeview.exe совершенно не нужно.

    Не понял, как декодировать в файл, поэтому нашел подходящую консольную утилиту. В любом случае скрипт для меня крут - первое мое работающее регулярное выражение, первая функция
     
    А почему не все функции попали в Функции пользователей?
    Есть только
    _Encoding_866To1251
    _Encoding_CyrillicTo1251
    _Encoding_GetCyrillicANSIEncoding
    _Encoding_HexToURL
    _Encoding_ISO8859To1251
    _Encoding_IsUTF8Format
    _Encoding_KOI8To1251
    _Encoding_URLToHex
    _Encoding_UTF8ToANSI

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 13:17 10-11-2013
    m0rh0ld



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день.
    Поиском пользовался, но не нашел что мне нужно, возможно гуру autoit могут подсказать решение моей проблемы.
     
    Есть АТС панас 824. Системный пароль изменен предыдущим сотрудником компании. Верю что возможно настроить автоит так, чтоб он перебирал все варианты (дина пароля от 4 до 7 цифр). и вводил в консоль администрирования АТС и если вышло окно с ошибкой то закрывать его и пробовать следующую комбинацию.
     
    Сброс станции делать нежелательно, так как на DISA ну очень уж приятный голос.
     
    Прошу подсказать скрипт на аутоит для такой задачи. может кто уже делал такое для собственных нужд.

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



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

    Цитата:
    А почему не все функции попали в Функции пользователей?  
    Там (на первой страничке) есть такая фраза "Вы можете принять участие в составлении данного раздела." Всё в ваших руках.
     
    Обновил ContMenuFiles, Create_list_files, Icon_of_folder

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 18:01 12-11-2013 | Исправлено: AZJIO, 19:27 12-11-2013
    cepbl4



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    собираю расширенный установщик utorrent.
    хочу внедрить в него проверку и изменение количества полуоткрытых tcp/ip соединений (half open tcp/ip limit).
    с осями от виста сп2 и выше все делается правкой записи в реестре, т.к. ограничение от мс снято.
     
    а с осями от виста сп1 и ниже решением является патчинг файла tcpip.sys. вот здесь-то и загвоздка.
    инструментом для отображения и изменения количества соединений вижу программу Half-open limit fix
    вопрос, можно ли с помощью сабжа произвести манипуляцию по изменению количества соединений в программе-фиксере? если можно, то каким образом?
     
    и еще один вопрос. фиксер показывает количество текущих соединений в элементе формы Label, имхо. Можно получить эту цифру в текстовом файле или в буфере обмена в виде цифры? если можно, то каким образом?

    Всего записей: 348 | Зарегистр. 19-11-2007 | Отправлено: 11:13 13-11-2013 | Исправлено: cepbl4, 11:17 13-11-2013
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    cepbl4, именно с этого элемента прочитать текст не удаётся.
    Копайте в сторону самостоятельного патчинга файла.

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 19:18 13-11-2013
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    cepbl4
    Цитата:
    фиксер показывает количество текущих соединений в элементе формы Label, имхо. Можно получить эту цифру в текстовом файле или в буфере обмена в виде цифры? если можно, то каким образом?
    Попробуйте примерно так.
    Код:
    #include <WinAPI.au3>
     
    Local $iBytes, $sFile = @SystemDir & '\drivers\tcpip.sys', $tUint, $pUint
     
    If StringInStr(FileGetVersion($sFile), '5.1.2600.') <> 1 Then Exit 13 ; у меня на WinXPSP3 так
    $tUint = DllStructCreate('uint')
    $pUint = DllStructGetPtr($tUint)
    $hFile = _WinAPI_CreateFile($sFile, 2, 2)
    _WinAPI_SetFilePointer($hFile, 0x0004FB46)
    _WinAPI_ReadFile($hFile, $pUint, 4, $iBytes)
    _WinAPI_CloseHandle($hFile)
    ConsoleWrite(DllStructGetData($tUint, 1) & @LF)

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 22:33 13-11-2013 | Исправлено: madmasles, 22:47 13-11-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пытаюсь сделать оболочку сборника программ. Посмотрите идею http://rghost.ru/50125523

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 01:13 14-11-2013
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Цитата:
    Пытаюсь сделать оболочку сборника программ. Посмотрите идею

    Код:
    #include <UserGUI.au3>
    ???

    Код:
    for_prog.au3(9,35) : WARNING: $g_aExtAssot: possibly used before declaration.
    и т.д.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 01:45 14-11-2013 | Исправлено: madmasles, 02:06 14-11-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
    UserGUI.au3 идёт в комплекте русской справки.
    На счёт Au3Check.exe мне не хотелось бы под него подстраиваться. Переменные автоматически объявляются глобальными в глобальной области видимости, а их явное объявление накладывает процент потери скорости в 1.6 раз. Поэтому для функций я стараюсь объявить, чтобы избежать ошибки, хотя при использовании префикса "$g_" может смело избавить от ошибки и без объявления в функции. Чтобы не отключать встроенную проверку можно сделать запуск кликом в проводнике.
    В общем я приложил описание, но кратко: хотел сделать оболочку с рейтингом и некоторыми критериями отображения программ в списке. Рейтинг позволяет показать обязательные программы к установке, чтобы покрыть весь спектр популярных расширений файлов. Отключение групп позволяет вывести список в один столбик, чтобы по порядку их кликать, не раскрывая категорий. Критерий бесплатности позволяет выбрать показать только допустимые к установке например на домашний или коммерческий комп.
    Единственная ошибка, которая появилась при добавлении управления клавишами в дереве это при раскрытии стрелками 2-го и 3-го пунктов и нажатии Enter вызывает передачу сообщения в Dummy который в свою очередь как то умудряется вызвать нажатие кнопок Setting и Open. Обрезка функционала в компактный тестовый пример исключил проблему, но почему то кажется что это какая то несовместимость горячих клавиш, потому что в логике кода проблем нет.
    И кстати, если удалить prog.cfg, то программа предложит указать папку с программами естественно разложенных по категориям по папкам и сформируется новый prog.cfg с существующими папками.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 02:44 14-11-2013 | Исправлено: AZJIO, 02:55 14-11-2013
    Skif_off

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

    Цитата:
    Всё в ваших руках.  

    С моим знанием языка соваться не хочется
     
    comrades, по функции MemGetStats кто-нибудь может пояснить?
     
    $array[1] = общее количество физической памяти (Total physical RAM)
    $array[2] = доступное количество физической памяти (Available physical RAM)
    $array[3] = размер файла подкачки (Total Pagefile)
    $array[4] = доступный размер файла подкачки (Available Pagefile)
    $array[5] = всего виртуальной памяти (Total virtual)
    $array[6] = доступно виртуальной памяти (Available virtual)
     
    а по цифрам получается:
     
    $array[1] = физическая, доступная ОС = всего физической - зарезервировано под оборудование
    $array[2] = свободная из физическая, доступная ОС (условно свободная, может быть забита кэшем)
    $array[3] = виртуальная память = физическая, доступная ОС + файл подкачки
    $array[4] = свободная из виртуальная память
    $array[5] = физически установлено
    $array[6] = физически установлено - ?

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 03:23 15-11-2013 | Исправлено: Skif_off, 03:23 15-11-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Почему бы не смотреть справку за конец 2013 года, а не за 2011 год. Хочется онлайн, то сравнивай здесь
     
    Добавлено:
    По цифрам 3 и 4 надо поменять местами с 5 и 6, но я смотрел на сайте майкрософт и там чёрным по белому прослеживалось virtual и Pagefile в соответствующих позициях. А изменять по собственной инициативе в одиночку смертельно для жизни.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 11:05 15-11-2013 | Исправлено: AZJIO, 11:07 15-11-2013
    Skif_off

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

    Цитата:
    Почему бы не смотреть справку за конец 2013 года, а не за 2011 год.

    Вроде то же самое написано и в офдокументации, и по ссылке (спасибо, заменил в закладках).

    Цитата:
    По цифрам 3 и 4 надо поменять местами с 5 и 6

    5 и 6 на Win7x64 какую-то хрень показывают:
    5 - ~физически установленная в байтах - 8 589 934 464 ~= 8,192 Гб.
    А на WinXP тоже физически установленная, но как и заявлено - в кб. И это нехорошо (если только у меня не глюк).
     
    Если воспринимать Pagefile как страницы памяти, а не pagefile.sys, то по сути 3 и 4 получается как раз virtual.
     
    Добавлено:
    Запустил батником

    Код:
    start """" AutoIt3.exe mem.au3 && start """" AutoIt3_x64.exe mem_x64.au3


    Код:
    $mem = MemGetStats()
    MsgBox(4096, "Mem(_x64)", "Процент используемой памяти    = " & $mem[0] & " %" & @CRLF & "Физическая память: общий размер    = " & $mem[1] & " Кб" & @CRLF & "Физическая память: свободно        = " & $mem[2] & " Кб" & @CRLF & "Файл подкачки: общий размер    = " & $mem[3] & " Кб" & @CRLF & "Файл подкачки: свободно        = " & $mem[4] & " Кб" & @CRLF & "Виртуальная память: общий размер    = " & $mem[5] & " Кб" & @CRLF & "Виртуальная память: свободно    = " & $mem[6] & " Кб")

    и получил такую картину: http://rghost.ru/50186952/image.png
    С 3.3.9.22 beta аналогично. Наверное, надо репортить?

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 13:11 15-11-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Вот смотри GlobalMemoryStatusEx, там инфа
    //  Sample output:
    //  There is       51 percent of memory in use.
    //  There are 2029968 total KB of physical memory.
    //  There are  987388 free  KB of physical memory.
    //  There are 3884620 total KB of paging file.
    //  There are 2799776 free  KB of paging file.
    //  There are 2097024 total KB of virtual memory.
    //  There are 2084876 free  KB of virtual memory.
    //  There are       0 free  KB of extended memory.
     
     
    У меня WinXP
    [1]|3538028
    [2]|1727292
    [3]|5424124
    [4]|2805740
    [5]|2097024
    [6]|2039544
    судя по [3]|5424124 - это общий размер памяти физической и подкачки, потому что больше всех. 3538028 - это точный размер видимой памяти 3,5Гб вместо 4Гб. 2097024 - это более вероятно файл подкачки, потому что размер файла у меня установлен 2Гб.
     

    Цитата:
    Наверное, надо репортить?
    тут как бы проблема макрософт, они же просто WinAPI используют. Я отписал пока здесь

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 15:27 15-11-2013
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    На WinXP проверил еще раз, получилось так:
     
    [1]|3145200 - доступный ОС объем физической
    [2]|2866264 - свободно из [1]
    [3]|5078476 - [1]+pagefile.sys (virtual)
    [4]|4978136 - свободно из [3]
    [5]|2097024 - pagefile.sys
    [6]|2050220 - свободно из [5]
     
    а Win7 x86/x64 5 и 6 что-то не то показывают.
     
    Посмотрел MEMORYSTATUSEX structure, если правильно понял, ullTotalVirtual и ullAvailVirtual - это всего виртуальной памяти и свободно виртуальной памяти для текущего процесса. Тогда понятно различие x86 и x64 и это явно не размер pagefile.sys (у нас обоих он занимает 2 Гб, что соответствует ограничению x86 приложений и помешало сразу увидеть).
    AutoIt3.exe скомпилен с ключом /largeaddressaware, по идее на x64 системе [5] не должно превышать 3 Гб? А у меня показывает 4.

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 17:00 15-11-2013 | Исправлено: Skif_off, 17:09 15-11-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