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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KOL48
    Пока не подтянулись опытные товарищи

    Всего записей: 6483 | Зарегистр. 28-01-2008 | Отправлено: 15:50 22-07-2014 | Исправлено: Skif_off, 15:52 22-07-2014
    KOL48

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

    Всего записей: 44 | Зарегистр. 14-12-2005 | Отправлено: 16:12 22-07-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Хм, однако, создать пустой массив - нетривиальная задача...
    Так

    Код:
    Dim $aInstallSoft[1]

    не работает, значение $aInstallSoft[0] не меняется, хотя должно показать количество элементов в массиве.

    Всего записей: 6483 | Зарегистр. 28-01-2008 | Отправлено: 16:19 22-07-2014
    KOL48

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не важно. Можно выгружать строки в файл, и выполнять оттуда. Я про RunWait забыл. Теперь разберусь.

    Всего записей: 44 | Зарегистр. 14-12-2005 | Отправлено: 16:23 22-07-2014
    Skif_off

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

    Цитата:
    Можно выгружать строки в файл, и выполнять оттуда.

    Я в похожем случае делал батник (дописывал "start /wait ") функцией _TempFile.

    Всего записей: 6483 | Зарегистр. 28-01-2008 | Отправлено: 16:40 22-07-2014
    NIKZZZZ



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

    Цитата:
    значение $aInstallSoft[0] не меняется, хотя должно показать количество элементов в массиве.

    Нет, нулевой элемент массива не показывает размерность массива, для этого есть Ubound()

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 17:03 22-07-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Спасибо, я обычно пользовался только массивами, созданными StringInStr
    Создаю и пытаюсь удалить $aArray[0]

    Код:
    #include <Array.au3>
     
    Local $aArray[1]
    $aArray[0] = ""
     
    _ArrayAdd($aArray, "раз")
    _ArrayAdd($aArray, "два")
    _ArrayDelete(ByRef $aArray, 1)
    _ArrayDisplay($aArray, "Array")

    получаю ошибку Error in expression (Line 8: _ArrayDelete(^ ERROR). Не понимаю, что не так?

    Всего записей: 6483 | Зарегистр. 28-01-2008 | Отправлено: 17:25 22-07-2014
    NIKZZZZ



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

    Цитата:
    _ArrayDelete(ByRef $aArray, 1)  

    А ByRef причем? Ты же не пишешь функцию, а вызываешь ее.
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 17:47 22-07-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Скопировал строку под заголовком, даже примеры не стал смотреть - вроде все очевидно

    Всего записей: 6483 | Зарегистр. 28-01-2008 | Отправлено: 18:05 22-07-2014
    dedmazai1870



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Какой командой можно вызвать такое окно? Мне нужно показать его на секунду.

    Всего записей: 1386 | Зарегистр. 07-07-2012 | Отправлено: 23:09 27-07-2014 | Исправлено: dedmazai1870, 23:12 27-07-2014
    DocBeen



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Коллеги приветствую всех!!!  
     
    Столкнулся с такой проблемой и не могу понять как ее решить:
    Сделал скрипт и скомпилировал его в Исполняемый, так вот - когда я его запускаю от имени своей учетки, то все работает и отрабатывает как надо, но как только стоит его поместить в планировщик или поместить скрипт на запуск в процессе выключения (Script Loggoff) так он не отрабатывает.
     
    В самом скрипте едет создание ИНИ файла, и затем передача его приложению в качестве аргумента.
    Первая половина скрипта (создание ини - отрабатывает) а вот запуск приложения с Ини файлом, запускаемым в скрипте нет (Видно в диспетчере что приложение запустилось и все, скрипт завис ... сделал логирование и вижу по логам что отработал только запуск приложения и все  )  
     
    Подскажите куда капнуть - чтоб АвтИтСкрипт (Скомпилированный) запускался в любом случае (От имени любой учетки) и отрабатывал запуск приложения внутри себя.
     
    За ранее спасибо
     
     
    P.S. Запуск подобного решения на VBS с передачей параметров и т.д. отрабатывает как надо (От имени системы и т.д. )

    Всего записей: 147 | Зарегистр. 15-07-2005 | Отправлено: 23:33 27-07-2014 | Исправлено: DocBeen, 23:45 27-07-2014
    Skif_off

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

    Цитата:
    (Видно в диспетчере что приложение запустилось и все)

    Прав достаточно?

    Всего записей: 6483 | Зарегистр. 28-01-2008 | Отправлено: 23:46 27-07-2014
    DocBeen



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    А права тут как могут повлиять на запуск?
     
    к примеру в VBS вызываю запуск программы с параметрами и все отлично (отрабатывает и закрывается приложение)
    а в AutoIt - точно такой же запуск не отрабатывает до конца.  
     
    Хочу малость свой вопрос по другому выразить: необходимо запускать (приложение, в моем случае 1С, для пакетной выгрузки) - всякие сторонние приложения с этим справляются на ура, и с помощью своих агентов - которые как службы в системе работают от имени системы, запускают выгрузку на ура ... но вот подобное Автоит почему то не может сделать ...  
     
    Ведь дело не только в 1С, другие приложения с подобным запуском - точно так же стопятся на выполнении...

    Всего записей: 147 | Зарегистр. 15-07-2005 | Отправлено: 09:30 28-07-2014
    Skif_off

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

    Цитата:
    А права тут как могут повлиять на запуск?  

    Если нет доступа к ini-файлу. В общем, ошибся, цепочка ассоциаций с Layout.ini сработала (было в теме выше)
     
    Попробовал добавить в планировщик (запуск через каждые 5 минут) - работает, при отключении от пользовательского сеанса - работает.
    Не ваш случай?

    Всего записей: 6483 | Зарегистр. 28-01-2008 | Отправлено: 10:44 28-07-2014
    DocBeen



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Skif_off
    Спасибо за подсказку ... помогло
     
    Еще вопрос появился ...  
     
    в системе бывает такое что файл используется другим приложением, каким образом возможно определить какое именно приложение ( моем случае это даже Служба)  
     
    В идеале перезапустить ее (Перезапуск через WMI с зависимостями могу сделать) а вот найти эту службу ???
     
    Через WinAPI могу только определить что файл занят или нет в данный момент и все
    А хочется перезапустить службу.

    Всего записей: 147 | Зарегистр. 15-07-2005 | Отправлено: 23:19 30-07-2014
    makedka

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Есть у Марка Руссиновича в пакете SysinternalsSuite утилита handle.exe
    Запущенная в командной строке с параметром "имя файла", показывает процесс, который его держит. Из автоита можно вызывать примерно так,
     

    Код:
    Func _Find_process()
        Global $iPID = Run(@ComSpec & ' /c C:\MyDir\handle.exe "file_name"', '', @SW_HIDE, 8)
            Global $sOut
            ProcessWaitClose($iPID)
            While 1
                $sOut = StdoutRead($iPID)
                If @error Then ExitLoop
                Sleep(100)
                $sRet = $sOut
            WEnd
        $sRet = _Encoding_OEM2ANSI($sRet )
        Return (StringSplit(StringUpper(StringStripCR($sRet)), @LF))
    EndFunc
     

     
    затем обработать возвращённый массив построчно для получения имени/пида процесса.

    Всего записей: 98 | Зарегистр. 01-12-2007 | Отправлено: 18:49 01-08-2014
    tahirg



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

    Всего записей: 1971 | Зарегистр. 23-03-2003 | Отправлено: 11:30 02-08-2014 | Исправлено: tahirg, 20:45 03-08-2014
    puz27

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

    Код:
     
    Run("test.exe")
    WinActivate ( "Инсталлятор рабочего места " )
    ControlClick ( "Инсталлятор рабочего места ", "Далее >", 2034622 )
     

    Я как понимаю здесь скрипт ищет кнопку по ID и жмет на нее
    Не работает
    Делал по другому ...

    Код:
     
    Run ("test.exe")  
    Opt ("MouseCoordMode",2)
    MouseClick ( "" , 442, 457, 1 ,1 )
     

    После запуска окно установки молчит...
    Где копать?
    Спасибо!!!
     
    п.с.Читал,что у программ сторонних разработчиком не всегда можно создать автоустановку...

    Всего записей: 14 | Зарегистр. 09-04-2014 | Отправлено: 12:54 08-08-2014 | Исправлено: puz27, 12:57 08-08-2014
    dedmazai1870



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    puz27
    Я сам новичок в AutoIT и на мой вопрос выше здесь не ответили. Но другой вопрос решил самостоятельно. Помогло это видео. Кажется, это по Вашему вопросу.

    Всего записей: 1386 | Зарегистр. 07-07-2012 | Отправлено: 14:48 08-08-2014 | Исправлено: dedmazai1870, 14:49 08-08-2014
    puz27

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

    Всего записей: 14 | Зарегистр. 09-04-2014 | Отправлено: 16:11 08-08-2014
       

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