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

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Cegpuk 21:04 14-06-2010
    Цитата:
    1. Объясните, как работает функция. Не могу понять каким образом происходит переключение состояния не в паузе/в паузе.

    Поставь после $Paused = NOT $Paused, например msgbox и посмотри, какое значение будет в переменной - $Paused - сам догадаешся. Значение меняется так, ибо НЕ Истина=ложь, ибо НЕ Ложь=истина. Цикл работает пока Истина.

    Всего записей: 165 | Зарегистр. 17-06-2008 | Отправлено: 21:29 14-06-2010
    madmasles

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

    Цитата:
     Умеет ли AutoIT работать с памятью

    Умеет. Посмотрите эту UDF NomadMemory.
    И в англ. справке раздел Memory Management.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 21:46 14-06-2010
    Cegpuk



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vicbox777,
    Я понимаю, как работает $Paused = NOT $Paused. Мне не понятно следующее: при первом же заходе в функцию $Paused получает NOT и следовательно While уже не должен работать. Но оно работает.
    Вот такое вариант мне полностью понятен:
    Код:
    Func Pause()
        $Paused = NOT $Paused
        While $Paused=True
           Sleep(100)
        WEnd
    EndFunc

    upd. Кажется дошло: $Paused по умолчанию имеет 0 и после NOT получается единицу? А While по умолчанию имеет единицу? Как-то так.
    upd2. MsgBox всё разъяснил, спасибо
     
    madmasles,
    Спасибо. Пользовался русской устаревшей справкой.

    Всего записей: 287 | Зарегистр. 24-01-2007 | Отправлено: 22:34 14-06-2010 | Исправлено: Cegpuk, 22:44 14-06-2010
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Cegpuk 22:34 14-06-2010
    Цитата:
    MsgBox всё разъяснил

    Угу, это (или ToolTip в некоторых ситуациях) надёжный и простой метод отладки кода. У меня самая частоиспользуемая аббревиатура это mb (MsgBox(64, 'Title', |)).

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 23:16 14-06-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обновил скрипт list_var_funk.au3 - поиск переменных и функций, добавил возможность передавать путь в ком-строке, а значит использовать по горячей клавише в Scite, Notepad++. Добавил подсчёт переменных и кнопку "Open" для Include
     
    для Scite
     
    для Notepad++

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 09:24 15-06-2010 | Исправлено: AZJIO, 21:08 13-04-2011
    Kar1son

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

    Цитата:
    mb (MsgBox(64, 'Title', |))

    а что это? mb в справке не нашел, а на | ругается как не допустимый символ...

    Всего записей: 187 | Зарегистр. 23-08-2006 | Отправлено: 09:43 15-06-2010
    afanasy_spb_ru

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день, уважаемые!
    Написал в AutoIt утилиту-текстовый обработчик и откомпилировал её под DOS консоль. Хотелось бы добавить небольшой текст-описание, который бы был виден при старте утилиты в DOS консоли...
    Подскажите, пожалуйста, как писать строки в DOS консоль...
     
    (Изиняюсь, если тема уже поднималась... Утилита будет использоваться также на ПК под Linux, так что решения для записи строк в консоль Windows не катят...)

    Всего записей: 3 | Зарегистр. 28-05-2010 | Отправлено: 13:18 15-06-2010
    Cegpuk



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kar1son, Просто MsgBox(64, 'Title', |), вместо | интересующее значение. Я так понял.

    Всего записей: 287 | Зарегистр. 24-01-2007 | Отправлено: 13:49 15-06-2010
    vicbox777



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kar1son 08:43 15-06-2010
    Цитата:
    а что это? mb в справке не нашел, а на | ругается как не допустимый символ...

    Это аббревиатуры для SciTE. Вот здесь есть описание для русской сборки SciTE. Вобщем смысл в том, что вводиш, например, mb, нажимаеш пробел и из mb получается уже то, что было написано ранее - Msgbox(64,"Title",|), например. Курсор будет стоять в месте символа - |, что удобно. Аббревиатур может быть много, и каждая может иметь свой фрагмент нужного кода, который таким образом очень быстро можно вставить в нужное место SciTE. Вобщем, кто раз попробовал пользоваться - будет пользоваться всю жизнь.

    Всего записей: 165 | Зарегистр. 17-06-2008 | Отправлено: 17:07 15-06-2010 | Исправлено: vicbox777, 17:18 15-06-2010
    kosjachok



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

    Цитата:
    Вот здесь есть описание для русской сборки SciTE.  

    Неплохо было бы добавить это в шапку... Странно что ещё нету ...

    Всего записей: 691 | Зарегистр. 18-08-2004 | Отправлено: 00:25 16-06-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    пример использования GUICtrlCreateGraphic, обновил 1 раз.

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 04:36 16-06-2010 | Исправлено: AZJIO, 09:23 16-06-2010
    Kar1son

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

    Тложно объяснить словами, поэтому скриншот. Ищу красный цвет поочереди на всем поле(на скрине виден один квадрат, на самом деле их тут 6 на 6, просто на одном отрабатываю пока), поиск идет по каждому квадратику, на скрине поиск по квадрату ПОД тем на котором есть совпадение. Маленькая кнопочка показывает где проверка нашла совпадение по цвету, но видно же что его там нет! кусок проги которая это делает виден на скрине. если проверяемый квадрат начинается ниже предыдущего на 17 точек то все норм, если меньше то будет совпадение, причем в разных точках(если ниже на 1 пиксель то в одной, если на 2 пикселя то в другой).  Чертовщина какая-то...
    хотябы в каком направлении копать?  

    Всего записей: 187 | Зарегистр. 23-08-2006 | Отправлено: 15:25 16-06-2010 | Исправлено: Kar1son, 16:41 16-06-2010
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kar1son
    Скачал Вашу картинку, поместил ее в окно, посмотрел цвет AutoIt v3 Window Info.
    У меня так все работает:
    Код:
    #include <GUIConstantsEx.au3>
     
    Opt("MouseCoordMode", 2)
    Opt("PixelCoordMode", 2)
     
    $Form1 = GUICreate("Form1", 650, 450, -1, -1)
    $Pic1 = GUICtrlCreatePic("1.jpg", 80, 104, 60, 60)
    $Button = GUICtrlCreateButton("Button", 500, 400,80, 30)
    GUISetState()
     
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
            Case $Button
                $cord = PixelSearch( 0, 0, 650, 450, 0xF70B17, -1, 0, $Form1)
                If Not @error Then
                    MouseMove($cord[0], $cord[1], 20)
                Else
                    MsgBox(0, '', "Нет такого цвета")
                EndIf
        EndSwitch
    WEnd

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 22:07 16-06-2010
    Kar1son

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
    оно и у меня так работает, но после того как находит точку(как в вашем примере), находит еще одну(левую)... вот как оно работает, если не сложно, посмотрте пожалуйста. Спасибо!
    _http://ifolder.ru/18197786

    Всего записей: 187 | Зарегистр. 23-08-2006 | Отправлено: 09:16 17-06-2010
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kar1son
    Я поменял в Вашем скрипте (_http://ifolder.ru/18197786) Opt("PixelCoordMode", 0) на Opt("PixelCoordMode", 2) и кнопки создаются только там, где найден цвет, а лишние кнопки у меня не создаются.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 10:14 17-06-2010 | Исправлено: madmasles, 10:20 17-06-2010
    Kar1son

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
    я кажется понял.я промахнулся с координатами квадратов, и плюс к этому PixelSearch давал координаты от угла окна, а GUICtrlCreateButton координаты от клиентского окна... Спасибо что помогли разобраться!

    Всего записей: 187 | Зарегистр. 23-08-2006 | Отправлено: 10:35 17-06-2010
    degid



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    XpycTMD
    Цитата:
    degid
    Цитата:
    Ура!!! Оказывается существует файл Array.au3! там есть _ArrayCreate.

    Попробуй заменить
    Код:
    #include <Array.au3>
    $strIPAddress = _ArrayCreate("192.168.0.141")
     

    вот на это
    Код:
    Dim $strIPAddress[1] = ["192.168.0.141"]

     

    Спасибо! Работает

    Всего записей: 31 | Зарегистр. 26-10-2006 | Отправлено: 15:28 17-06-2010
    Orion_76



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Никто незнает способа, как получить права доступа пользователя к файлу-папке?
    (которые в свойствах файла на вкладке Безопасность..)

    Всего записей: 386 | Зарегистр. 02-11-2007 | Отправлено: 00:12 20-06-2010
    AZJIO



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

    Цитата:
    Func _cacls()
        $accfncombo0 = GUICtrlRead($accfncombo)
        $access00 = GUICtrlRead($access)
        Switch $access00
            Case $access00 = "запрет"
                $access0 = "N"
            Case $access00 = "чтение"
                $access0 = "R"
            Case $access00 = "запись"
                $access0 = "W"
            Case $access00 = "изменение"
                $access0 = "C"
            Case $access00 = "полный"
                $access0 = "F"
            Case Else
                $access0 = "F"
        EndSwitch
        ShellExecute(@SystemDir & '\cacls.exe', '"' & $sTarget & '" /t /e /p "' & $accfncombo0 & '":' & $access0, '', '', @SW_HIDE)
    EndFunc   ;==>_cacls

     
    $sTarget - путь
    $accfncombo0 - пользователь (Administrator, Все)
    $access0 - буква, к примеру F - полный доступ.
     
    Или посмотри полный пример для контекстного меню

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 01:03 20-06-2010 | Исправлено: AZJIO, 01:11 20-06-2010
    Orion_76



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

    Всего записей: 386 | Зарегистр. 02-11-2007 | Отправлено: 01:16 20-06-2010 | Исправлено: Orion_76, 02:10 20-06-2010
       

    Страницы: 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