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

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

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

    Цитата:
    Вручную удаляются после закрытия окна.  

    Тогда, наверное, особого смысла в таком цикле нет. А какой процесс использует их? Сам лаунчер? Отключение проверки обновления не решает проблему?
    Держать их рядом с VirtualBox.exe не получается? Было бы удобнее и вполне канонiчно.

    Цитата:
    Это осталось ещё со времён XP и когда сам Бокс компилировался в студии пониже, вот и остались следы в коде

    В зависимостях, кажется, SDL.dllx64 присутствует отсутствующая msvcp80.dll или msvcr80.dll, но вроде всё работает.
     
    Всё-таки логика странная: если не было msvcp71.dll и msvcr71.dll, то копируются все 3 и удаляются все 3, но msvcrt.dll есть в ОС из коробки.

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 20:17 29-01-2016
    Aleksandr N

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Всё оказалось и сложно и просто... Тот скрипт что я показал запускает портативку Бокса. При закрытии Бокса скрипт всё удаляет и сам закрывается. Но в связи с тем что в Боксе введены новые меры безопасности, при некоторых условиях использование Бокса невозможно. Вот один здешний умелец пересобрал Бокс. Но это сложно и у него не получилось что-то и пришлось библиотеки OpenSSL класть в папку с Боксом. Но Бокс почему-то в портативном варианте не видит эти библиотеки рядом с VirtualBox.exe. Поэтому приходится их копировать в System32.
    Это лирика, а теперь факты. Оказалось то что эти библиотеки заняты именно самим экзешником скрипта даже если Бокс полностью выгружен. И соответственно цикл удаления не срабатывает. Странно, библиотеки должны использоваться Боксом, скрипту они совсем не нужны и негде не прописаны...
    Тогда вопрос такой: как можно удалить эти файлы если они заняты самим скриптом?

    Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 22:38 29-01-2016
    nik4z



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

    Цитата:
    Тогда вопрос такой: как можно удалить эти файлы если они заняты самим скриптом?

    В конце скрипта добавить
    Run('cmd.exe /c "del /q %windir%\system32\msvcp71.dll & del /q %windir%\system32\msvcp71.dll"')

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 23:04 29-01-2016
    Aleksandr N

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nik4z
    Да, сработало. Удалилось. Получается больше никаким образом удалить не получится? Тогда чтобы совсем всё замечательно было, а скрыть консоль cmd.exe как-то можно? Если скрыть нельзя, то как в одной команде удалить сразу два файла по именам?

    Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 23:46 29-01-2016
    nik4z



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

    Цитата:
    а скрыть консоль cmd.exe как-то можно? Если скрыть нельзя, то как в одной команде удалить сразу два файла по именам?


    Код:
    Run('cmd.exe /c "del /q %windir%\system32\file1 & del /q %windir%\system32\file2 & del /q %windir%\system32\file3"', "", @SW_HIDE)


    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 23:58 29-01-2016
    Skif_off

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

    Цитата:
    Оказалось то что эти библиотеки заняты именно самим экзешником скрипта даже если Бокс полностью выгружен.

    VirtualBox при этом работает нормально? А если штатно инсталлировать версию CaptainFlint, то dll спокойно лежат и работают рядом с VirtualBox.exe?

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 00:00 30-01-2016
    Aleksandr N

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nik4z
    Ага... Спасибо. Завтра попробую.
    Skif_off
    Так ты в курсе этих дел... Это хорошо. Да, если инсталировать, то всё работает нормально. Но я не заметил, может они копируются и в системную папку... Хотя и показывает что библиотеки не найдены, всё работает нормально в портативном варианте. Можешь почитать топик Бокса, я там всё описывал подробно. Когда CaptainFlint решит все проблемы тогда может что-то изменится. А это я хочу для себя сделать для удобства работы.
     
    Добавлено:
    nik4z
    Всё получилось, все свои проблемы решил.
     
    Спасибо всем здешним жителям.
     
    Добавлено:
    Skif_off
    А удалить библиотеки OpenSSL из системной директории хочу потому что одна мною написанная программа использует эти библиотеки, но слегка подправленные. Вот и не хочу чтобы загружались те что лежат в системной директории а не те что я хочу.

    Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 00:12 30-01-2016
    AZJIO2

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Сделал опросник, типа ЕГЭ, задаётся вопрос, выбираешь один из доступных ответов.

    Всего записей: 85 | Зарегистр. 27-01-2016 | Отправлено: 19:14 12-02-2016 | Исправлено: AZJIO2, 20:59 12-02-2016
    SLIDER999

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ребята, как можно сгладить картинку?

     
    в просмотрщике норм

     
    Сделано так:

    Цитата:
    $iFile = GUICtrlCreateLabel(' Перетащите на этот текст скан-копию акта для сохранения', 20, 105, 290, 30, $WS_BORDER)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED)
    $hPic = GUICtrlCreatePic('', 330, 8, 700, 950, $SS_SUNKEN)
    Case $GUI_EVENT_DROPPED
    If @GUI_DropId = $iFile Then
    GUICtrlSetData($iFile, @GUI_DragFile)
    GUICtrlSetImage($hPic, GUICtrlRead($iFile))
    EndIf

    Всего записей: 261 | Зарегистр. 16-03-2005 | Отправлено: 12:50 18-02-2016 | Исправлено: SLIDER999, 12:06 19-02-2016
    AZJIO2

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SLIDER999
    Попробуй трансформировать изображение перед тем как вставить, возми пример в моей коллекции скриптов по адресу "мои скрипты AZJIO/!!!мои примеры/_ImageResize".
    Прошлый раз я написал ответ но форум заглючил, пришлось подождать и зарегистрироваться снова.

    Всего записей: 85 | Зарегистр. 27-01-2016 | Отправлено: 20:50 19-02-2016
    SLIDER999

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

    Всего записей: 261 | Зарегистр. 16-03-2005 | Отправлено: 12:30 20-02-2016
    MastuBasta



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Что-то на ровном месте тупняк: почему команда
    MouseClick("left",$var)
    не жрет из
    $var = IniRead("config.ini", "config", "key", "1,1")
    ?
    Файл точно читается, в msgbox выдает нормально все, а в mouseclick - фиг. А надо бы.
    Потом еще хочу прикрутить ко всему этому инпут, который запоминал бы в этот файл конфига введенные данные, но пока бы хоть заставить маусклик жрать из него.

    Всего записей: 172 | Зарегистр. 15-08-2006 | Отправлено: 06:06 23-02-2016 | Исправлено: MastuBasta, 06:08 23-02-2016
    nik4z



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MastuBasta
    MouseClick требует два отдельных параметра x и y , а вместо них подсовывается один , и тот строка.

    Код:
    $var = IniRead("config.ini", "config", "key", "1,1")  
    $avar=StringSplit($var, ",")
    MouseClick("left",$avar[1],$avar[2])


    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 08:08 23-02-2016
    MastuBasta



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Большое спасибо, теперь отлично работает! А можно еще вопрос?
     
    Я хотел сделать определение координат, в идеале бы так же, как в "au3 window info" (с перетаскиваемым указателем), и я примерно представляю что для этого понадобится много чего, включая mousedrag, но это пока сложновато для меня.
    Так что просто используя mousegetpos пытаюсь сделать, хотя и не очень "юзер френдли" получается.
    Короче..
     

    Код:
    Func COORDButton()
    MsgBox(0, "Определение координат", "Наведите мышь")
      GUISetState(@SW_MINIMIZE)
      Sleep (5000)
      Local $pos = MouseGetPos()
      IniWrite("config.ini", "config", "coord", $pos)
      GUICtrlSetData($inputcoord, $pos)
      GUISetState(@SW_RESTORE)
    EndFunc

     
    $inputcoord - это окошко с координатами, которые должны появляться там (для наглядности, только надо сделать это поле ридонли и в идеале при каждом запуске программы подставлять туда данные из того же config.ini), и записываться в файл config.ini после срабатывания функции, откуда мы потом берем $var для следующей функции на второй кнопке, где уже происходит mouseclick по $avar...
     
    Пока весь этот кошмар выглядит вот так:

    Код:
    #include <GUIConstantsEx.au3>
     
    Opt("GUIOnEventMode", 1)
    $mainwindow = GUICreate("101XP DK MNT TR", 300, 200)
    local $var = IniRead("config.ini", "config", "coord", "1,1")
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
    $inputcoord = GUICtrlCreateInput("0,0", 20, 50, 100, 20)
    $okbutton = GUICtrlCreateButton("Старт", 120, 130, 60)
    $coordbutton = GUICtrlCreateButton("Определить", 200, 45, 80)
    GUICtrlSetOnEvent($okbutton, "OKButton")
    GUICtrlSetOnEvent($coordbutton, "COORDButton")
    GUISetState(@SW_SHOW)
     
    While 1
      Sleep(1000)
    WEnd
     
    Func COORDButton()
    MsgBox(0, "Определение координат", "Наведите мышь")
      GUISetState(@SW_MINIMIZE)
      Sleep (5000)
      Local $pos = MouseGetPos()
      IniWrite("config.ini", "config", "coord", $pos)
      GUICtrlSetData($inputcoord, $pos)
      GUISetState(@SW_RESTORE)
    EndFunc
     
    Func OKButton()
      MsgBox(0, "GUI Event", "Перейдите на нужное окно")
      GUISetState(@SW_MINIMIZE)
      Sleep (1000)
    local $i=1
    $knamnt = GUICtrlRead ($input)
    while $i<=$knamnt
    Sleep (100)
    $avar=StringSplit($var, ",")
    MouseClick("left",$avar[1],$avar[2])
    $i = $i + 1
    WEnd
    GUISetState(@SW_RESTORE)
    EndFunc
     
    Func CLOSEClicked()
      Exit
    EndFunc
     

     
    Возможно (и скорее всего) я не прав и стоит поменять последовательность...

    Всего записей: 172 | Зарегистр. 15-08-2006 | Отправлено: 14:31 23-02-2016 | Исправлено: MastuBasta, 14:33 23-02-2016
    AZJIO2

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

    Цитата:
    Я хотел сделать определение координат, в идеале бы так же, как в "au3 window info" (с перетаскиваемым указателем
    GUIFinder, CaptureText

    Всего записей: 85 | Зарегистр. 27-01-2016 | Отправлено: 19:56 23-02-2016
    OTOXI

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет
    Не подскажете как можно запустить и открыть окно файла .txt  
    Без использования функции FileOpen - она я так понял для скрытой записи  а мне GUI нужно видеть
    , что бы хот кеи использовать  
    Спасибо  
     

    Всего записей: 23 | Зарегистр. 08-07-2010 | Отправлено: 02:04 24-02-2016 | Исправлено: OTOXI, 02:23 24-02-2016
    AllXXX



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте.
    Подскажите можно ли с помощью данной программы решить мои неудобства?
    Имеется HTML файл с калькулятором, после ввода данных и выбора нужных параметров выводится текст, который нужно скопировать и вставить в редактор.
    Хотелось бы, нажав сочетание клавиш, запускался калькулятор, а результат вставлялся под курсор.
    Если подобное возможно подскажите в какую сторону рыть и быть может уже что то подобное есть?

    Всего записей: 15 | Зарегистр. 13-05-2006 | Отправлено: 04:46 24-02-2016
    SLIDER999

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

    Цитата:
    Run('notepad.exe "' & $sFile & '"')

     
    AllXXX
    Присвой $sText значение из HTML

    Цитата:
    $sText = 555
    ClipPut($sText)
    ShellExecute('calc.exe')
    Sleep(1000)
    Send(ClipGet())

    Всего записей: 261 | Зарегистр. 16-03-2005 | Отправлено: 10:21 24-02-2016
    SLIDER999

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Делаю поле с границами:
    $hPic = GUICtrlCreatePic('', 330, 8, 550, 750, $SS_SUNKEN)
    Если подряд тычу на кнопку:
    GUICtrlSetImage($hPic, 'путь к картинке')
    то картинка понемногу растягивается вправо-вниз. Виноват $SS_SUNKEN. Как обойти?

    Всего записей: 261 | Зарегистр. 16-03-2005 | Отправлено: 13:28 24-02-2016
    MastuBasta



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

    Цитата:
    GUIFinder

    Как я и думал, это оказалось слишком сложно для меня.

    Всего записей: 172 | Зарегистр. 15-08-2006 | Отправлено: 13:53 24-02-2016
       

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