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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Открыть новую тему     Написать ответ в эту тему

gyra

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

 
Описание:

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

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


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

  • Всего записей: 7932 | Зарегистр. 18-02-2006 | Отправлено: 10:49 23-01-2020 | Исправлено: Egor2020, 14:02 22-03-2021
    LaVas_ki

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А нет ли у кого программки для преобразования папок с ссылками LNK в меню для запуска? Вообще лаунчеры есть на AutoIT?

    Всего записей: 1464 | Зарегистр. 03-08-2003 | Отправлено: 12:52 19-03-2021
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LaVas_ki
    Есть такое Create_lnk (этим активно пользуюсь)
    и такое Sort_main_menu
    и лаунчеры ButtonBar и Launcher

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 21:34 23-03-2021 | Исправлено: AZJIO, 21:37 23-03-2021
    forslaey

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте. Подскажите, как заставить отработать скрипт, либо сам готовый скомпилированный exe в образе boot.wim?

    Код:
     
    While not ProcessExists("setup.exe")
            Sleep (1000)
    WEnd
     
    While ProcessExists("setup.exe")
      If (WinExists("Установка Windows", "Перезагрузить сейчас")) Then
          WinActivate("Установка Windows", "Перезагрузить сейчас")
          ControlSend("Установка Windows", "Перезагрузить сейчас", "", "{ENTER}")
      EndIf
      If (WinExists("Windows Setup", "Перезагрузить сейчас")) Then
          WinActivate("Windows Setup", "Перезагрузить сейчас")
          ControlSend("Windows Setup", "Перезагрузить сейчас", "", "{ENTER}")
      EndIf
      If (WinExists("Установка Windows", "Restart now")) Then
          WinActivate("Установка Windows", "Restart now")
          ControlSend("Установка Windows", "Restart now", "", "{ENTER}")
      EndIf
      If (WinExists("Windows Setup", "Restart now")) Then
          WinActivate("Windows Setup", "Restart now")
          ControlSend("Windows Setup", "Restart now", "", "{ENTER}")
      EndIf
        Sleep (1000)
    WEnd
     

    Я монтирую boot.wim, и помещаю в корень исполняемый скомпилированный файл скрипта install.exe, создал winpeshl.ini и в нём указал  
    [LaunchApps]
    %SYSTEMDRIVE%\install.exe  
     
    но абсолютно ничего не происходит.
    Как сделать так, чтобы при установке системы, этот файл запустился и отработал на странице перезагрузки системы?

    Всего записей: 15 | Зарегистр. 14-04-2018 | Отправлено: 16:28 06-04-2021 | Исправлено: forslaey, 16:34 06-04-2021
    ndch

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Хочу кликнуть мышью трижды , без изменения координат, средствами autoit  
     
    MouseClick("primary",,,3,1)
     
    Согласно документации x, y - опциональны:
    MouseClick ( "button" [, x, y [, clicks = 1 [, speed = 10]]] )
    x, y    [optional] The x/y coordinates to move the mouse to. If no x and y coords are given, the current position is used (default).
     
     
    При попытке такого действа получаю:
    MouseClick("primary",,,3,1)
    MouseClick("primary",^ ERROR
    Error: Error in expression.
     
    Что я делаю не так ? Как кликнуть трижды по текущим координатам ?
     
    В принципе следующая конструкция работает, но как-то не комильфо:
    MouseClick("primary")
    MouseClick("primary")
    MouseClick("primary")

    Всего записей: 6488 | Зарегистр. 31-08-2008 | Отправлено: 09:49 11-04-2021 | Исправлено: ndch, 09:54 11-04-2021
    Zmy777

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Надо использовать ключевое слово "Default".
     

    Код:
    MouseClick("left",Default,Default,3,50)

     
     

    Всего записей: 23 | Зарегистр. 20-08-2018 | Отправлено: 11:18 11-04-2021
    iglezz

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

    Код:
    MouseClick("primary", Default, Default, 3, 1)

    Если кратко, то параметры просто пропускать нельзя, но можно заменить пропускаемые опциональные параметры ключевым словом Default.
    Подробности в справке в "Function Notes" и "Default"

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 11:19 11-04-2021
    Egor2020

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте! Мне нужно средствами AutoIt написать простейшую утилиту командной строки по следующему принципу:

    1. При запуске без параметров или с параметром /? должно выводиться окно сообщения, поясняющее, с какими параметрами командной строки нужно запускать скрипт.
    2. Если не хватает определенного количества обязательных параметров командной строки (2-х, 3-х, 4-х или даже больше), то должно выводиться окно сообщения о нехватке параметров.
    3. Должны поддерживаться следующие типы параметров: обязательные текстовые/числовые параметры; необязательные текстовые/числовые параметры; флаги, начинающиеся с косой черты.

    Кто-нибудь сможет написать скрипт AutoIt по данному принципу? Заранее спасибо.
    Версия AutoIt: 3.3.14.5.
    Версия Windows: Windows 10 Enterprise (x64) v1903.

    Всего записей: 1726 | Зарегистр. 01-03-2020 | Отправлено: 10:01 25-06-2021
    Andrey_A_A



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO, не подскажешь , где может закрасться ошибка, вычисляю время через функцию _DateDiff_2() результат должен быть -0.00.00 00:36:30 , но функция выдаёт -0.00.00 00:36:29
    на секунду меньше...?

    Код:
    #include <_DateDiff_2.au3>
    $aOld=StringRegExp('0000.00.00.12:33:15','(\d+)',3)
    $aNew=StringRegExp('0000.00.00.11:56:45','(\d+)',3)
    $sCompare=_DateDiff_2($aOld,$aNew,0)
    If @error Then Exit MsgBox(0,'Сообщение','@error = '&@error)
    If @extended Then $sCompare='-'&$sCompare
    MsgBox(0,'Разница в датах',$sCompare)


    Всего записей: 1389 | Зарегистр. 15-08-2011 | Отправлено: 15:52 30-06-2021 | Исправлено: Andrey_A_A, 15:58 30-06-2021
    Andrey_A_A



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Видимо ошибка кроется в переменной $t, надо заменить этот кусок кода

    Код:
      If $New[$i]-$t<$Old[$i]Then
        $t=1
        $Old[$i]=$New[$i]+$L[$i]-$t-$Old[$i]
      Else
        $Old[$i]=$New[$i]-$t-$Old[$i]
        $t=0
      EndIf

    на этот

    Код:
      If $New[$i]-$t<$Old[$i]Then
        $Old[$i]=$New[$i]+$L[$i]-$t-$Old[$i]
        $t=1
      Else
        $Old[$i]=$New[$i]-$t-$Old[$i]
        $t=0
      EndIf

    Всего записей: 1389 | Зарегистр. 15-08-2011 | Отправлено: 13:29 01-07-2021
    SharkyEXE

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте
    Операционная система: Microsoft Windows 7 Professional x64 с пакетом обновления 1
    Пожалуйста, как удалить или скрыть значок (я отметил красным)
    При наведении курсора мыши на иконку ничего не отображается, мол, у иконки нет имени, или есть имя, но имя не отображается
    Картинка
    Спасибо!

    Всего записей: 354 | Зарегистр. 25-01-2009 | Отправлено: 09:22 03-07-2021
    Baltazar500



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть ли костыли, позволяющие вставленный текст в GUICtrlCreateEdit без CR (только с LF) переводить в CRLF на лету, дабы он не отображался в одну строку после вставки ?

    Всего записей: 2090 | Зарегистр. 19-09-2011 | Отправлено: 19:22 08-07-2021
    ynbIpb



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

    Код:
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
     
    $Form1 = GUICreate("Form1", 350, 200)
    $Edit1 = GUICtrlCreateEdit ( "", 4, 4, 342, 100)
    $Button1 = GUICtrlCreateButton("Paste", 128, 110, 75, 25)
    GUISetState(@SW_SHOW)
     
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
            Case $Button1
                _Add_CR ()
        EndSwitch
    WEnd
     
    Func _Add_CR ()
        $sClipboard = ClipGet (); Читаем буфер обмена
        If $sClipboard <> "" Then ; если в буфере что-то есть
            GUICtrlSetData ($Edit1, StringAddCR ($sClipboard)) ; добавляем CR и вставляем в Edit
        EndIf
    EndFunc

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 21:16 10-07-2021
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Baltazar500
    Попробуйте ловить событие $EN_CHANGE (нашёл в примере _GUICtrlEdit_Create, после чего забираете текст и с StringInStr проверяете, есть ли @CRLF, если нет - скармливаете StringAddCR и заменяете текст в контроле, без буфера обмена, конечно.

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 00:50 11-07-2021 | Исправлено: Skif_off, 00:51 11-07-2021
    Fom64

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

    Всего записей: 262 | Зарегистр. 26-11-2010 | Отправлено: 07:00 11-07-2021
    Andrey_A_A



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

    Код:
    ; https://autoit-script.ru/threads/vstavka-teksta-s-lf-bez-cr-v-pole-edit.28344/#post-155717
    Global Const $ES_EX_ALLOWEOL_CR=1
    Global Const $ES_EX_ALLOWEOL_LF=2
    Global Const $ES_EX_ALLOWEOL_ALL=$ES_EX_ALLOWEOL_CR+$ES_EX_ALLOWEOL_LF
    Global Const $ES_EX_CONVERT_EOL_ON_PASTE=4
    Global Const $ES_EX_ZOOMABLE=16 ; zoom при CTRL+колесо мыши
     
    Global Const $ECM_FIRST=0x1500
    Global Const $EM_SETEXTENDEDSTYLE=$ECM_FIRST+10; Минимальная версия клиента-Windows 10,1809
     
    Local $hGui,$idEdit,$idButton,$sLine='Line 1'&@LF&'Line 2'&@LF&'Line 3'&@LF&'Line 4'&@LF&'...'
    ClipPut($sLine)
     
    $hGui=GUICreate(@ScriptName,400,400)
    $idEdit=GUICtrlCreateEdit('',5,5,390,350,-1,0)
    GUICtrlSendMsg(-1,$EM_SETEXTENDEDSTYLE,0,$ES_EX_ALLOWEOL_CR+$ES_EX_ALLOWEOL_LF+$ES_EX_CONVERT_EOL_ON_PASTE+$ES_EX_ZOOMABLE)
    GUICtrlSetData(-1,$sLine)
    $idButton=GUICtrlCreateButton('GUICtrlRead',10,360,380,30)
    GUISetState()
     
    Do
      $iMsg=GUIGetMsg()
      Switch $iMsg
        Case -3
          Exit
        Case $idButton
          MsgBox(0,Default,StringReplace(StringReplace(GUICtrlRead($idEdit),@CR,'{CR}'),@LF,'{LF}'),0,$hGui)
      EndSwitch
    Until Sleep(9)-1

    Всего записей: 1389 | Зарегистр. 15-08-2011 | Отправлено: 13:09 11-07-2021
    AZJIO



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

    Цитата:
    _DateDiff_2()

    Самое интересное в PureBasic у меня это исправлено в марте 2019г, не знаю почему я не исправил для AutoIt3. Может не было желания ворошить архивы, или забыл. Да и никто особо не вспоминал об этой функции. Всё правильно, $t=1  должно быть ниже строкой.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 00:53 20-07-2021
    820815



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Кому-нибудь попадался код подобного прогрессбара?
     
     

    Всего записей: 645 | Зарегистр. 18-12-2006 | Отправлено: 21:02 26-08-2021
    AZJIO



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

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 08:48 03-09-2021
    BOBAT



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

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 07:07 12-10-2021
    Demon

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Встал вопрос отследить простой (отсутствие активности) компьютера. Отслеживаем отсутствие активности клавиатуры, мыши - это понятно, работает. Но на компьютере может воспроизводиться видео, в том числе и online видео. В браузере может воспроизводиться видео, тот же Youtube. Это должно расцениваться, что компьютер занят. Как решить эту задачу?

    Всего записей: 583 | Зарегистр. 03-10-2001 | Отправлено: 21:43 13-10-2021
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 4)


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru