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

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



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

    Код:
    FileDelete(''z_Test.txt')
    FileWrite(StringRegExpReplace(FileRead('z_Test.dat'),chr(0) & '+' , @crlf))

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 20:08 09-10-2016
    alan123

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ребята , как сделать скрипт команду из бат файла с повышенными правами, чтобы можно было сразу указать домен юзер и пароль для выполнении
     
    echo on
    route add 0.0.0.0 mask 0.0.0.0 10.10.1.1 -p  , т.е. добавление только шлюза,  
     

    Всего записей: 67 | Зарегистр. 10-02-2006 | Отправлено: 16:14 13-10-2016
    crotoff

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто-нибудь встречал в интернетах готовые решения по автоматизации заполнения ГИС ЖКХ? Имеется ввиду эмуляция ввода договоров, лицевых счетов абонентов, но чтоб данные считывались из списка в Excel.

    Всего записей: 961 | Зарегистр. 17-04-2007 | Отправлено: 17:08 03-11-2016
    Black666angel



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто может помочь? Суть: нужно чтоб кнопка "start "B3"" выполнила такое действие: запустила "*.bat - лежит рядом" с параметрами "откуда "in1"" и "куда "in2" и создала автоматом папку "хххх" по пути из "in2""

    Код:
    #include <GUIConstants.au3>
     
    $Form1_1 = GUICreate("NSCopy", 625, 101, 203, 310)
    GUISetBkColor(0x000000)
    $B1 = GUICtrlCreateButton("Откуда", 8, 8, 73, 25, 0)
    $In1 = GUICtrlCreateInput("", 88, 8, 529, 21)
    GUICtrlSetBkColor(-1, 0xC8C8C8)
    $B2 = GUICtrlCreateButton("Куда", 8, 40, 73, 25, 0)
    $In2 = GUICtrlCreateInput("", 88, 40, 529, 21)
    GUICtrlSetBkColor(-1, 0xC8C8C8)
    $B3 = GUICtrlCreateButton("START", 8, 72, 609, 17, 0)
    GUISetState(@SW_SHOW)
     
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
     
                Case $B1            
                
                    $FODB1=FileSelectFolder("Выбрать.", "")
                    GUICtrlSendMsg($In1, 0x000C, 0, $FODB1)
     
                Case $B2            
                
                    $FODB2=FileSelectFolder("Выбрать.", "", 1)
                    GUICtrlSendMsg($In2, 0x000C, 0, $FODB2)
     
                Case $B3            
     
                    
     
                    
        EndSwitch
    WEnd
     

    Всего записей: 148 | Зарегистр. 05-09-2010 | Отправлено: 13:10 15-11-2016 | Исправлено: Black666angel, 17:41 15-11-2016
    Skif_off

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

    Код:
            Case $B3
                $sIn1 = GUICtrlRead($In1)
                $sIn2 = GUICtrlRead($In2)
                DirCreate(StringReplace($sIn1 & '\xxxx', '\\', '\'))
                Run(@ComSpec & ' /c "' & @ScriptDir & '\ваш.bat" "' & $sIn1 & '" "' & $sIn2 & '"', '', @SW_HIDE)

    ?
     
    StringReplace() на случай, если путь будет записан вручную с обратным слэшем на конце.

    Всего записей: 6483 | Зарегистр. 28-01-2008 | Отправлено: 15:09 15-11-2016 | Исправлено: Skif_off, 15:10 15-11-2016
    Black666angel



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

    Цитата:
    DirCreate(StringReplace($sIn1 & '\xxxx', '\\', '\'))

    Оп, мой косяк не "sin1" a "sin2" это ладно просто изменить цифру...
    Папка создается нормально, но *.bat не запускает и нечего не происходит.

    Всего записей: 148 | Зарегистр. 05-09-2010 | Отправлено: 17:52 15-11-2016
    Skif_off

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

    Код:
    Run('"' & @ScriptDir & '\ваш.bat" "' & $sIn1 & '" "' & $sIn2 & '"')

    ?
    Или ShellExecute() попробовать.
     
    А батник обязателен? В смысле, нельзя переписать на AutoIt?
     
    Добавлено:
    Тут вспомнил, что иногда без явно указанного рабочего каталога некоторые вещи не работают, попробуйте так:

    Код:
    Run(@ComSpec & ' /k "' & @ScriptDir & '\ваш.bat" "' & $sIn1 & '" "' & $sIn2 & '"', @ScriptDir, @SW_SHOW)

    Всего записей: 6483 | Зарегистр. 28-01-2008 | Отправлено: 18:20 15-11-2016
    Black666angel



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    О всё, благодарю за помощь... Это подошло...

    Цитата:
    Run('"' & @ScriptDir & '\ваш.bat" "' & $sIn1 & '" "' & $sIn2 & '"')

    Но не много пришлось доработать... Тобиш убрать строчку
    Цитата:
    DirCreate(StringReplace($sIn1 & '\xxxx', '\\', '\'))
    и сделать
    Цитата:
    Run('"' & @ScriptDir & '\ваш.bat" "' & $sIn1 & '" "' & $sIn2 & '\хххх"')
    и всё пошло как нужно, ибо пока была та строчка, он создавал нужную папку, но что нужно он делал рядом с этой же папкой а не в ней
    ...
    Блин а шо здесь нету кнопки типа "спасибо"?

    Всего записей: 148 | Зарегистр. 05-09-2010 | Отправлено: 22:10 16-11-2016 | Исправлено: Black666angel, 22:21 16-11-2016
    king_stiven

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 11:06 27-11-2016 | Исправлено: king_stiven, 13:30 28-11-2016
    slava10779

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребят, кто в курсе, можно на AutoIt всплывашку с предпросмотром картинки под курсором сделать? Для TotalCommander. Вот тут что то похожее есть, но у меня не работает. Вроде на AutoIt написано. Может из за битности Windows, черт его знает. Или как оно работает не разобрался... Помогите кто чем может... там исходники есть, может че подправить можно. я в этом дуб полный.

    Всего записей: 294 | Зарегистр. 19-11-2014 | Отправлено: 17:23 07-12-2016
    Andrey_A_A



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

    Цитата:
    можно на AutoIt всплывашку с предпросмотром картинки под курсором сделать?

    Недавно тоже разбирался, начинал с этого: http://autoit-script.ru/index.php?topic=10706.0
    Если нужно готовое решение, то prevw, но без исходников...
     

    Всего записей: 1389 | Зарегистр. 15-08-2011 | Отправлено: 18:03 07-12-2016
    cax

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

    Всего записей: 1 | Зарегистр. 07-12-2016 | Отправлено: 19:37 08-12-2016 | Исправлено: cax, 19:42 08-12-2016
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ткните, пожалуйста, носом: где-то видел пример с генерацией чекбоксов и работой с ними, когда заранее неизвестно их количество, но что-то не получается найти.
    Использую Opt("MustDeclareVars", 1), это не будет проблемой?

    Всего записей: 6483 | Зарегистр. 28-01-2008 | Отправлено: 03:06 20-12-2016
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    А в чем проблема ?
    Определяется массив , и далее создаются чекбоксы.
    Массив должен быть заведомо большего размера, чем максимальное количество чекбоксов, либо при создании нового чекбокса его размер должен изменяться через ReDim.  

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 08:31 20-12-2016
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Проблема в том, что подобное не делал и не помню, как с этим массивом обращаться. Двумерный массив, в первой ячейке ID контрола, во второй - привязанные к нему данные, в цикле проверяю состояние по первой и по итогу использую вторую ячейку?
    И пока не придумал, как добавлять в GUI (размер окна, расположение и т.д.), в примере вроде было.

    Всего записей: 6483 | Зарегистр. 28-01-2008 | Отправлено: 12:39 20-12-2016
    NIKZZZZ



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

    Код:
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
     
    Dim $Checkbox[1][2]
    $Form1 = GUICreate("Demo", 615, 438, 192, 124)
    For $i = 0 To 9
        ReDim $Checkbox[$i + 2][2]
        $Checkbox[$i][1] = 'Data ' & $i
        $Checkbox[$i][0] = GUICtrlCreateCheckbox($Checkbox[$i][1], 56, 84 + $i * 20, 93, 17)
    Next
    GUISetState(@SW_SHOW)
     
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
     
        EndSwitch
    WEnd

     
    Ну, а проверку сам организуешь как надо.
     
     
    Добавлено:
    Skif_off

    Цитата:
    И пока не придумал, как добавлять в GUI (размер окна, расположение и т.д.), в примере вроде было.

    Чтобы с этим не заморачиваться, можно использовать TreeView, пример из моего скрипта.
     

    Код:
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    #include <StaticConstants.au3>
    #include <TreeViewConstants.au3>
    #include <WindowsConstants.au3>
     
    Dim $TREEVIEW[1][2]
    $form1 = GUICreate("Demo2", 499, 388, -1, -1)
    $TREEVIEW[0][0] = GUICtrlCreateTreeView(8, 8, 481, 177, BitOR($TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES, $WS_GROUP, $WS_TABSTOP))
    $TREEVIEW[0][1] = 0
    For $i = 1 To 50
        ReDim $TREEVIEW[$i + 1][2]
        $TREEVIEW[$i][1] = ' Data ' & $i
        $TREEVIEW[$i][0] = GUICtrlCreateTreeViewItem($TREEVIEW[$i][1], $TREEVIEW[0][0])
    Next
    GUISetState(@SW_SHOW)
    While 1
        $MSG = GUIGetMsg()
        Switch $MSG
            Case $Gui_EVENT_CLOSE
                Exit
        EndSwitch
    WEnd
     
    ;Для проверки в цикле - If BitAND(GUICtrlRead($TREEVIEW[$i][0]), $Gui_CHECKED) Then ....


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 13:07 20-12-2016
    fonser

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ, подскажите, нужно выход функции PixelGetColor записать в файл в виде графики.
    Это для того чтобы увидеть, что "видит" сам AutoIt.
    Но вот как-то самому писать такую "писалку" по спецификациям форматов BMP/PNG/ и т.д. меня не очень вдохновляет.
    Может есть какой-то другой путь? Или может кто-то такое уже делал?

    Всего записей: 142 | Зарегистр. 05-06-2008 | Отправлено: 20:33 24-12-2016
    jFobos



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А вам не подойдет эта функция? http://autoit-script.ru/autoit3_docs/libfunctions/_screencapture_capture.htm
    Мне кажется она "увидит" все тоже самое что и PixelGetColor

    Всего записей: 452 | Зарегистр. 03-12-2007 | Отправлено: 21:43 24-12-2016
    fonser

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jFobos, вроде работает, попробую в деле. Спасибо!

    Всего записей: 142 | Зарегистр. 05-06-2008 | Отправлено: 14:40 25-12-2016
    Isiro



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет!
     
    Подскажите как можно найти скрытую иконку в трее по имени или ID процесса, её создавшего?  
     
    Пример кода, где поиск иконки выполняется по её тексту:
     

    Код:
     
    #include <GuiToolbar.au3>
     
    $search = "OneDrive: вход не выполнен" ; текст всплывающей подсказки иконки
     
    $tray = ControlGetHandle("[class:Shell_TrayWnd]", "", "ToolbarWindow322")
    If FindDel($search) Then Exit
     
    ControlClick("[class:Shell_TrayWnd]", "", "Button4")
    $tray = ControlGetHandle("[class:NotifyIconOverflowWindow]", "", "ToolbarWindow321")
    If Not FindDel($search) Then MsgBox(0, "", "Кнопка с текстом '" & $search & "' не найдена", 7)
    WinSetState("[class:NotifyIconOverflowWindow]", "", @SW_HIDE)
     
    Func FindDel($text)
      For $i = 0 To _GUICtrlToolbar_ButtonCount($tray) - 1
        If StringInStr(_GUICtrlToolbar_GetButtonText($tray, _GUICtrlToolbar_IndexToCommand($tray, $i)), $text) > 0 Then
          _GUICtrlToolbar_DeleteButton($tray, _GUICtrlToolbar_IndexToCommand($tray, $i))
          Return 1
        EndIf
      Next
      Return 0
    EndFunc
     

    Всего записей: 7 | Зарегистр. 15-12-2005 | Отправлено: 12:32 28-12-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