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

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

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

    Цитата:
    После Вашего кода я конечно поставил Бип, чтобы контролировать его, а после EndIF у меня стоит свой Бип

    Написано же
    Цитата:
    свой Beep - убери

    Не может там ничего "3 раза" срабатывать, если уж совсем правильно то так

    Код:
    Run("C:\Program Files\Adobe\Adobe Photoshop CC 2018\Photoshop.exe", "", @SW_MAXIMIZE)  
    $hWnd = WinWait("[CLASS:Photoshop]", "", 6)  
    If Not $hWnd Then  
        MsgBox(4096, 'Сообщение', 'Adobe Photoshop не найден, завершаем работу скрипта')  
        Exit
        Else  
        Do  
           $hControl = ControlGetHandle($hWnd ,"", "[CLASS:OWL.ApplicationBar; INSTANCE:1]")  
           Sleep (500)
        Until $hControl <> ""
        If $hControl <> "" Then
           Beep(200, 1000)
        EndIf
    EndIf

    И никаких Beep после
    И перед Run кагбе правильно, проверять наличие файла

    Цитата:
    А как ещё узнать, в каком месте кода что то не работает?
    Наверн прежде всего читать справку), AZJIO кучу сил положил, чтоб эту справку перевести. Ну и есть всякие msgbox и Debug UDF

    Всего записей: 262 | Зарегистр. 26-11-2010 | Отправлено: 16:22 03-09-2018 | Исправлено: Fom64, 16:31 03-09-2018
    BOBAT



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

    Код:
    #NoTrayIcon
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
     
    Local $hGui, $msg, $Input1, $Input2, $Input3, $Input4, $BtnOk, $sText
     
    $hGui = GUICreate("Введите фразу для поиска", 380, 60, @DesktopWidth / 2 - 190, @DesktopHeight / 2 - 180, -1, $WS_EX_ACCEPTFILES)
    $Input1 = GUICtrlCreateInput('', 10, 5, 360, 20)
    $BtnOk = GUICtrlCreateButton("OK", (672 - 70) / 2, 30, 70, 26)
     
    GUISetState()
     
    While 1
        $msg = GUIGetMsg()
        Switch $msg
            Case $GUI_EVENT_CLOSE
                ExitLoop
             Case $BtnOk
                Beep(200, 500) ;сюда записываем нужные команды после нажатия кнопки ОК
                $sText = ''
                $sText &= 'Input1 = ' & GUICtrlRead($Input1) & @CRLF
                MsgBox(0, "Результат", $sText, 0, $hGui)
                Exit ; если нужно закрывать окно после нажатия ОК
        EndSwitch
    WEnd
     

    Можете подсказать, как мне добавить, чтобы в этом окне Нажималась клавиша Enter равносильно нажатию на ОК, как сделать так, чтобы введённый текст после нажатия Enter или ОК копировался в буфер обмена,  это окошко скрывалось, а код продолжал выполняться - то есть открывал, например, браузер и вставлял код туда?

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 14:10 06-09-2018
    AZJIO



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

    Цитата:
    после нажатия Enter

    https://www.autoitscript.com/forum/topic/139260-autoit-snippets/?page=3&tab=comments#comment-1022183

    Цитата:
    копировался в буфер обмена
    в справке на вкладке "Поиск" вводишь буфер, смотришь функции подходящие по смыслу, типа ClipPut

    Цитата:
    это окошко скрывалось
    Статус окна Hide, ищешь в справке в разделе "Окна", типа WinSetState
     

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 06:55 07-09-2018 | Исправлено: AZJIO, 06:56 07-09-2018
    BOBAT



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

    Код:
    Local $aAccelKeys[1][2] = [["{ENTER}", $BtnOk]]
    GUISetAccelerators($aAccelKeys)
    помог

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 12:09 07-09-2018 | Исправлено: BOBAT, 12:10 07-09-2018
    BOBAT



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пытаюсь запустить cmd из папки Temp
    Код:
    ShellExecuteWait(@TempDir & "\close.cmd", "", @SW_HIDE)

    файл запускается, но окошко всё равно проскакивает, как скрыть окно cmd?

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 16:13 08-09-2018
    Skif_off

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

    Код:
    ShellExecuteWait(@TempDir & "\close.cmd", "", "", "", @SW_HIDE)

     
    Добавлено:
    Если не сработает, то так можно попробовать

    Код:
    ShellExecuteWait(@ComSpec, '/c "' & @TempDir & '\close.cmd"', "",  "", @SW_HIDE)

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 17:04 08-09-2018 | Исправлено: Skif_off, 17:07 08-09-2018
    AZJIO



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

    Код:
    RunWait(@ComSpec & ' /c reg.exe -h>"' & @ScriptDir & '\text.txt"', '', @SW_HIDE)

    Тут @ComSpec это как путь к cmd.exe, вместо reg.exe указать файл запуска. Не пробовал, но вдруг. Если не получится можно стороннюю прогу использовать, какой нибудь hide.exe

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



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

    Цитата:
    Код:
    ShellExecuteWait(@TempDir & "\close.cmd", "", "", "", @SW_HIDE)  

    Работает этот код, Skif_off, спасибо за помощь,  
    AZJIO, я как раз и не хотел использовать сторонние проги (фактически я вышел из положения, переконвертировав cmd в exe и никаких окон, но мне нужно чтобы именно cmd работал)

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 17:19 08-09-2018 | Исправлено: BOBAT, 17:22 08-09-2018
    BOBAT



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

    Код:
    #NoTrayIcon
    #RequireAdmin
    #pragma compile(Icon, "shtask.ico")
    FileInstall("Single_start.xml", @TempDir & '\Single_start.xml', 1)
    FileInstall("sh.cmd", @TempDir & '\sh.cmd', 1)
    If FileExists(@TempDir & '\Single_start.xml') and  FileExists(@TempDir & '\sh.cmd') Then
       ShellExecuteWait(@TempDir & "\sh.cmd", "", "", "", @SW_HIDE)
    EndIf
       Exit

    Файлы при компиляции копируются в скрипт, при выполнении извлекаются в @TempDir, потом оттуда запускаются. Если я запускаю нескомпилированный скрипт -всё работает, при этом файлы лежат рядом и копируются в @TempDir, если я компилирую - файлы добавляются в скрипт, и если скомпилированный файл запускать из этой же папки с файлами рядом  - то всё работает, но если я перемещаю скомпилированный файл в другую папку, то файлы извлекаются в @TempDir, и даже команда запуска срабатывает(проверял снятием атрибута @SW_HIDE), но задача не добавляется. В чём может быть дело??

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 13:40 10-09-2018 | Исправлено: BOBAT, 13:50 10-09-2018
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT
    Возможно, батник ищет не там файл Single_start.xm

    Код:
    ShellExecuteWait(@TempDir & "\sh.cmd", "", @TempDir, "", @SW_HIDE)  

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 13:50 10-09-2018 | Исправлено: NIKZZZZ, 13:56 10-09-2018
    BOBAT



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

    Цитата:
    BOBAT
    Возможно, батник ищет не там файл Single_start.xm  

    Как он может искать файлы, когда у него путь прописан конкретного файла? Во всяком случае добавление  @TempDir, не помогло. Если файлы лежат рядом, то всё работает, если файлов рядом нет, то ничего не работает, хотя файлы извлекаются

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 14:12 10-09-2018 | Исправлено: BOBAT, 14:15 10-09-2018
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT
    Так может проблема с путями (не хватает кавычек) в самом батнике?
    Да и зачем вообще нужен батник, можно просто переписать его на Autoit.  

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 14:23 10-09-2018
    BOBAT



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

    Код:
    #NoTrayIcon
    #RequireAdmin
    #pragma compile(Icon, "shtask.ico")
    If FileExists(@TempDir & '\Single_start.xml') and  FileExists(@TempDir & '\sh.cmd') Then
       ShellExecuteWait(@TempDir & "\sh.cmd", "", "", "", @SW_HIDE)
    EndIf
       Exit  

    то сама команда отрабатывает правильно и всё добавляется
     
    Добавлено:

    Цитата:
    Так может проблема с путями (не хватает кавычек) в самом батнике?
    Да и зачем вообще нужен батник, можно просто переписать его на Autoit.  

    Как он тогда отрабатывает правильно при запуске из нескомпилированного скрипта? Батник - это универсальность, здесь отрабатывается код, при котором все файлы проекта интегрируются в один файл при компиляции, а после при инсталляции все эти файлы cmd xml вместе с exe и картинками и ещё другими файлами извлекаются в TempDir и оттуда уже идёт установка программы или ещё что другое. А здесь всё компилируется, всё извлекается, всё запускается, но если файлов рядом нет - ничего не работает
     
    Добавлено:
    Сделал такой код

    Код:
    #RequireAdmin
    ShellExecuteWait(@TempDir & "\sh.cmd", "", "", "", @SW_HIDE)

    В одной папке, файлы лежат в темп, если я запускаю скомпилированный скрипт в месте создания этого скрипта, то команда отрабатывает, если я его перемещаю в другую папку - то ничего не работает. В чём здесь дело?? Сейчас проверил - урезанный код ( ShellExecuteWait(@TempDir & "\sh.cmd", "", "", "", @SW_HIDE)) работает только в одной папке, при перемещении скрипта в другую папку ничего не работает.  
     
    Добавлено:
    Как место запуска может влиять на результат??
     
    Добавлено:
    Сейчас проверил скрипт, сделанный по той же технологии, то есть добавление cmd в скрипт, извлечение в Temp и запуск - ВСЁ работает из любой папки. Что не так с первым скриптом??

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 14:29 10-09-2018 | Исправлено: BOBAT, 14:53 10-09-2018
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT
    Возможно проблема в разрядности OS, добавьте в батник первой строкой

    Код:
    if defined PROCESSOR_ARCHITEW6432 start %SystemRoot%\Sysnative\cmd.exe /c "%~dpnx0" %* & exit


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 15:08 10-09-2018
    BOBAT



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

    Цитата:
    Возможно проблема в разрядности OS, добавьте в батник первой строкой
     
    Код:
    if defined PROCESSOR_ARCHITEW6432 start %SystemRoot%\Sysnative\cmd.exe /c "%~dpnx0" %* & exit  

    Кроме мелькания чёрного окна ничего не изменилось. Бросаю этот скрипт, надоело. Если в скрипте только один cmd без других файлов - то всё работает из любого места, если добавляю xml - проблема папки. Всё, видимо для данной операции такое сочетание не проходит.

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 16:42 10-09-2018 | Исправлено: BOBAT, 16:46 10-09-2018
    Fom64

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT
    *.xml и батник не всовывай в скрипт, а им, скриптом, создай.

    Всего записей: 262 | Зарегистр. 26-11-2010 | Отправлено: 18:24 10-09-2018
    BOBAT



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

    Цитата:
    *.xml и батник не всовывай в скрипт, а им, скриптом, создай.

    Что создать?

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 18:52 10-09-2018
    Fom64

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

    Цитата:
    Что создать?


    Цитата:
    *.xml и батник не всовывай в скрипт, а им, скриптом, создай.

    *.xml и батник. Справка - FileOpen()

    Всего записей: 262 | Зарегистр. 26-11-2010 | Отправлено: 19:31 10-09-2018
    tuxik07

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    извиняюсь за офтоп.. Господа, не могу зарегистрироваться на autoit-script.ru. Может здесь обитают администраторы ресурса или, мож, кто чиркнет им. Не приходит письмо с ссылкой на активацию аккаунта. Недели три назад полез регистрироваться, зарегал две учетки на разные почтовые серверы (mail.ru, gmail) - писем нет (спам проверял). А нужно было библиотеку для конвертации строк из разных кодировок http://autoit-script.ru/index.php?topic=510.0, может кто поможет добыть модуль.

    Всего записей: 95 | Зарегистр. 21-10-2007 | Отправлено: 02:21 11-09-2018
    dialmak



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tuxik07
    https://www.upload.ee/files/8931777/Encoding.zip.html

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 02:40 11-09-2018
       

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