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

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



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO
    Да никаких проблем, главное - Вы попытались помочь, а работа, ессно, на первом месте.

    ----------
    Per warez ad scientiam

    Всего записей: 11717 | Зарегистр. 16-05-2003 | Отправлено: 08:34 31-03-2013
    dialmak



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Существуют ли какие-то функции в AutoIt по формированию HTML страниц и их оформлению?

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 10:40 31-03-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dialmak
    Да. Строковых функций придостаточно чтобы сформировать любую HTML-страницу.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 00:16 01-04-2013
    dialmak



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

    Цитата:
    Да. Строковых функций придостаточно чтобы сформировать любую HTML-страницу.

    Если нетрудно пример.

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 00:42 01-04-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dialmak
    http://autoit-script.ru/index.php/topic,10844.msg71578.html#msg71578
    Вот скрипты, обработки справки на основе HTML-страниц

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 07:46 01-04-2013
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обновлён Полный комплект справки, зеркало  2013.04.04
    Подробнее...

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 02:47 04-04-2013
    Scampy



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет!
    Как бы сделать чтоб скрипт монтировал сетевой диск, но перед этим проверял бы не занята ли буква диска, и если занята, переходил бы к следующей букве и потом запомнил бы букву на которой подмонтировал. И от неё бы уже дальше всё запускал.

    Всего записей: 162 | Зарегистр. 10-10-2008 | Отправлено: 11:32 12-04-2013
    AZJIO



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

    Код:
    $sStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ; весь алфавит
    $aDrives = DriveGetDrive( "all" ) ; получает все текущие диски
    For $i = 1 To $aDrives[0]
        $sStr = StringReplace($sStr, StringTrimRight($aDrives[$i], 1), '') ; удаляет текущие диски из списка всех букв
    Next
    ; MsgBox(0, 'Свободные буквы дисков', $sStr) ; показывает доступные
    $sDrive = _DriveMap($sStr, '\\myserver\stuff') ; собственно вызов мапинга
    If $sDrive Then MsgBox(0, 'Сообщение', 'Диск ' & $sDrive & ' подключен успешно')
     
    ; функция мапинга с удалением использованной буквы из списка
    Func _DriveMap(ByRef $sStr, $link)
        Local $sDrive = StringLeft($sStr, 1) ; извлекает первый доступный
        Local $bSuccess = DriveMapAdd($sDrive & ':', $link)
        If $bSuccess Then ; если успешно, то
            $sStr = StringTrimLeft($sStr, 1) ; удаляет из списка букву, что была использована
            Return SetError(0, 0, $sDrive) ; возвращает букву диска
        Else ; иначе
            Return SetError(1, 0, '') ; ошибка и пустая строка
        EndIf
    EndFunc

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 20:03 12-04-2013
    zaq12



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я пользуюсь Quick Macros 2, эта прога по функционалу сильно отличаеся (в большую или в меньшую сторону)?

    Всего записей: 280 | Зарегистр. 13-01-2005 | Отправлено: 20:20 12-04-2013
    AZJIO



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

    Цитата:
    Quick Macros 2
    не пользовался такой, знаю что AutoIt3 лучший.
     


    Обновил TextReplace. Добавлен поиск/замена используя список файлов.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 08:11 13-04-2013 | Исправлено: AZJIO, 06:36 14-04-2013
    embrace909



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужна математическая программа:
    Имеется известная общая сумма с 2 знаками после запятой, имеется 2 известных коэффициента. Надо автоматически перебрать 2 множителя в заданном диапазоне, чтобы нашлись такие, которые при умножении каждого на 2 известных коэффициента давали известную общую сумму.
     
    Наглядно: X*K1+Y*K2=СУММА, где X и Y от ЧИСЛО1 до ЧИСЛО2 с 2 знаками после запятой.

    Всего записей: 4483 | Зарегистр. 03-03-2006 | Отправлено: 17:07 15-04-2013 | Исправлено: embrace909, 17:10 15-04-2013
    Zloy_Gelud



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

    Код:
    ; Диапазон Х и Y: от 0 до 10 с шагом 0.01
    Local $aXIn[3] = [0, 10, 0.01]
    Local $aYIn[3] = [0, 10, 0.01]
     
    Local $K1 = 2.7         ; коэффициент К1
    Local $K2 = 1.3         ; коэффициент К2
     
    Local $Sum = 0.387        ; Сумма
     
    local $X, $Y
     
    While True
        For $X = $aXIn[0] To $aXIn[1] Step $aXIn[2]
            For $Y = $aYIn[0] To $aYIn[1] Step $aYIn[2]
                If ($X * $K1 + $Y * $K2 = $Sum) Then ExitLoop 3
                ;ConsoleWrite($X & ' ' & $Y & ' = ' & ($X * $K1 + $Y * $K2) &@CRLF)
            Next
        Next
    WEnd
     
    MsgBox(0, '', 'X = ' & $X & ', Y = ' & $Y)

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 18:07 15-04-2013
    embrace909



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zloy_Gelud
    Спасибо, всё сработало.
     
    Добавлено:
    Только как бесконечный цикл остановить в случае несуществуещего равенста.
     
    Добавлено:
    И если вывести ConsoleWrite - то 2 знака после запятой слетают в 12 знаков после запятой...

    Всего записей: 4483 | Зарегистр. 03-03-2006 | Отправлено: 21:20 15-04-2013
    Zloy_Gelud



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

    Код:
    ; Диапазон Х и Y: от 0 до 10 с шагом 0.01
    Local $aXIn[3] = [0, 0.7, 0.01]
    Local $aYIn[3] = [0, 0.9, 0.01]
     
    Local $K1 = 2.7         ; коэффициент К1
    Local $K2 = 1.3         ; коэффициент К2
     
    Local $Sum = 0.387        ; Сумма
     
    local $X, $Y
     
    Do
        For $X = $aXIn[0] To $aXIn[1] Step $aXIn[2]
            For $Y = $aYIn[0] To $aYIn[1] Step $aYIn[2]
                If ($X * $K1 + $Y * $K2 = $Sum) Then
                    MsgBox(0, '', 'X = ' & $X & ', Y = ' & $Y)
                    ExitLoop 3
                EndIf
                ;ConsoleWrite($X & ' ' & $Y & ' = ' & ($X * $K1 + $Y * $K2) &@CRLF)
            Next
        Next
    Until ($X > $aXIn[1])

     

    Цитата:
    И если вывести ConsoleWrite - то 2 знака после запятой слетают в 12 знаков после запятой...

    Фиг знает. Пускай спецы подскажут.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 22:50 15-04-2013
    Daniyar91

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

    Код:
    ;~ $X * $K1 + $Y * $K2 = $Z
    $nMin = 6.66 ;минимальное значение X и Y
    $nMax = 666 ;максимальное значение X и Y
    $nStep = 0.01 ;длина шага в диапозоне ОТ минемального ДО максимального значений X и Y
     
    $nPlace = 2 ;кол-во знаков после запятой, для X и Y
     
    $K1 = 6.66 ;коэффициент К1
    $K2 = 66.6 ;коэффициент К2
    $Z = 666 ;сумма
     
     
     
    Local $X, $Y
    Func Check()
        If (($Y >= $nMin And $Y <= $nMax) And (Round($Y, $nPlace) = $Y)) Then
            Return True
        Else
            Return False
        EndIf
    EndFunc
     
    For $X = $nMin To $nMax Step $nStep
        $Y = ($Z - $X * $K1) / $K2
        If Check() Then ExitLoop
    Next
     
    If Check() Then
        MsgBox(0, '', 'X = ' & $X & ', Y = ' & $Y)
    Else
        MsgBox(0, '', 'Решений нет.')
    EndIf

    Всего записей: 425 | Зарегистр. 30-08-2011 | Отправлено: 03:49 16-04-2013 | Исправлено: Daniyar91, 08:57 16-04-2013
    embrace909



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zloy_Gelud
    Daniyar91
    На пробном уравнении 205.87 х 208 + 201.56 х 17 = 46247.48 не находят решения, наверно из-за слетания количества знаков после запятой. Может надо на альтернативном языке писать?
     
    Добавлено:
    (мин= 200, мах = 210)

    Всего записей: 4483 | Зарегистр. 03-03-2006 | Отправлено: 09:52 16-04-2013
    AZJIO



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

    Цитата:
    205.87 х 208 + 201.56 х 17 = 46247.48

    в каком диапазоне? 17 не входит в (мин= 200, мах = 210). Даже если прокрутит цикл в диапазоне 200-210 получается 1000000 шагов цикла, а если диапазон увеличить то ещё намного дольше, в квадратной зависимости, например от 0 до 200 будет 20000*20000 = 400 миллионов. Для AutoIT вычисление в цикле заметны, конечно же на Си будет намного быстрее.

    Цитата:
    не находят решения, наверно из-за слетания количества знаков после запятой
    может ненайти, потому что вместо 32.45 может вернуть 32.44999999, потому что это аналог ситуации деления 1/3 но в двоичной системе. Выход из ситуации - округлять число до сотых, всё равно точность вычисления с сотыми при умножении на целое будет не более сотых, менее может но не более. Или исползовать типа
    If Abs($x - $tmp) < $step Then ; если разница по модулю меньше шага 0.01 то совпадение.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 11:22 16-04-2013 | Исправлено: AZJIO, 11:24 16-04-2013
    Risovod



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте.
    Помогите сделать скрипт, с помощью которого через определенный интервал (2-5 сек) нажималась бы кнопка "Сканирование" в окне "ScanGear CS", по возможности после завершения предыдущего сканирования. Если нет, то хотя бы просто с определенным интервалом. А после нажатия клавиши "Esc" скрипт завершал работу.
    Вот скрин окна сканера

    Всего записей: 939 | Зарегистр. 12-11-2006 | Отправлено: 11:52 16-04-2013 | Исправлено: Risovod, 11:54 16-04-2013
    Zloy_Gelud



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

    Цитата:
    в каком диапазоне? 17 не входит в (мин= 200, мах = 210)

    17 - это коэффициент К2, исходя из условия.
     
    embrace909
    А по-поводу 14 знаков после запятой - это не баг Автоита, это особенность C++ при операциях с числами с плавающей точкой, особенно, если маленький шаг, как у нас.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 11:52 16-04-2013 | Исправлено: Zloy_Gelud, 11:53 16-04-2013
    Astra55



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Risovod
    Уже давно сделано, подправите скрипт под себя, там очень просто - http://alexrey036.narod.ru/scanitto.html

    ----------
    Per warez ad scientiam

    Всего записей: 11717 | Зарегистр. 16-05-2003 | Отправлено: 12:01 16-04-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