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

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles,Спасибо,  вот тоже нашёл код удаления пустых строк:
    Код:

    Код:
    $file = FileOpen('Input.txt', 0)
     
    While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
     
    If StringIsSpace($line) OR $line = '' Then
    ; MsgBox(16, 'YES SPACE', '[' & $line & ']')
    Else
    MsgBox(64, 'NOT SPACE', '[' & $line & ']')
    EndIf
    WEnd
     
    FileClose($file)

     
    Что, сказать, по сравнению с батником всё сложно и запутанно,  
    или может мне так кажется, ввиду неопытности по Autoit,  
     

    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 12:27 20-08-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
    При использовании JumpToString обнаружил что Notepad++ считает двойные @CK и @LF переносами строк, а также их комбинацию с @CKLF. Для теста попробой этот скрипт.

    Код:
    $file = FileOpen(@ScriptDir&'\Test.txt',2)
    FileWrite($file, @CRLF&@LF&@LF&@CR&@CR&@CR&@LF&@CR&'d'&@LF&@CR&'d'&@LF&@CR&'d'&@LF&@CR&'d')
    FileClose($file)

    После обработки открой в Notepad++. Поэтому вот вариант регулярки:

    Код:
    $test=StringRegExpReplace($test, '(\r\n|\r|\n){2,}', '\1')

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 18:55 20-08-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO,
    Я еще добавил сначала
    Код:
    $sFileContent = StringRegExpReplace($sFileContent, '(\r|\n)(\s+)(\r|\n)', '\1\3')
    чтобы удалить строки, определяемые как StringIsSpace(). В одной регулярке мне это не осилить.
     

    Цитата:
    открой в Notepad++
    У меня его нет, но AkelPad воспринимает как переносы @CRLF, @CR & @LF, @CR, @LF.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 21:10 20-08-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обновил портабельную сборку AutoIt3_v3.3.6.1

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 08:51 22-08-2011 | Исправлено: AZJIO, 08:52 22-08-2011
    Claus_Trafoby



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
     
    Помогите пожалуйста, в очередной раз.
    Возможен ли перезапуск приложения, после появления второй строки c IP адресом (IP1.IP1.IP1.IP1)? Нормальная работа приложения происходит с одной строкой "Модуль дистанционного контроля IP1.IP1.IP1.IP1", после появления второй строки "IP1.IP1.IP1.IP1" (с таким же айпи адресом), приложение необходимо перезапускать.

    Всего записей: 320 | Зарегистр. 21-03-2003 | Отправлено: 12:44 22-08-2011 | Исправлено: Claus_Trafoby, 12:45 22-08-2011
    ubian



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

    Код:
     

    Код:
    #include <ScreenCapture.au3>
     
    $sFileWithPath = @ScriptDir & '\FileDir.INS';путь к файлу, в котором прописан путь к папке сохранения скриншота
    $sWinClass = @ScriptDir & '\WinClass.Open.INS';путь к файлу, в котором прописана hWin для скрина
    $sHackClass = FileRead($sWinClass)
    $sTitle = '[Title:uOpen Engine; Class:#' & $sHackClass & ']'; параметры окна для скриншота
     
     
    If FileExists($sFileWithPath) Then
        $sPath = FileRead($sFileWithPath)
        If Not FileExists($sPath) Or Not StringInStr(FileGetAttrib($sPath), 'D') Then
            $sPath = @DesktopDir
            $sHackPath = true
        EndIf
    Else
        $sPath = @DesktopDir
        $sHackPath = 'true'
    EndIf
    ;если файла с путем нет или в нем прописана не существующая папка, то сохраняем в Мои документы
    If Not $sHackPath = 'true' Then
        $sPath &= 'BookCoverImage.png'
    EndIf
    $hWin = WinGetHandle($sTitle)
    If $hWin Then
        _ScreenCapture_CaptureWnd($sPath, $hWin)
    Else
        ;Если окна нет, то делаем скриншот всего экрана.
        _ScreenCapture_Capture($sPath)
    EndIf

     

    Всего записей: 623 | Зарегистр. 22-07-2011 | Отправлено: 15:56 25-08-2011
    REEAL_CrAzY

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    #include <INet.au3>
     
    DIm $as_Body[1]
     
    $s_SmtpServer = "smtp.bk.ru"
    $s_FromName = "Anton"
    $s_FromAddress = "*******@bk.ru"
    $s_ToAddress = ""*******@bk.ru"
    $s_Subject = "1234"
    $as_Body[0] = "4321"    
    $as_Body[1] = "4321" ; пробовал эти поля оставлять пустым, пробовал цифры писать, ничего не менялось
    $Response = _INetSmtpMail ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body)
    $err = @error
    If $Response = 1 Then
        MsgBox(0, "Success!", "Mail sent")
    Else
        MsgBox(0, "Error!", "Mail failed with error code " & $err)
    EndIf  
     
     
    Не работает и постоянно выдаёт 50 ошибку (50x - Cannot send body.)
    Вроде всё правильно заполнил, смтп сервер правильно записал, чем не нравится тело письма?
     
    П.С. как юзать тег "<code>"?

    Всего записей: 42 | Зарегистр. 24-04-2011 | Отправлено: 18:39 25-08-2011 | Исправлено: REEAL_CrAzY, 18:43 25-08-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    REEAL_CrAzY
    используй SRMAIL от snoitaleR. Хотя для @bk.ru незнаю, а для @mail.ru работает.

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 13:15 26-08-2011 | Исправлено: AZJIO, 13:17 26-08-2011
    REEAL_CrAzY

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Скачал библиотеку, установил. Требует также библиотеку "encoding.au3", которой нету. Где её скачать?

    Всего записей: 42 | Зарегистр. 24-04-2011 | Отправлено: 19:37 26-08-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    REEAL_CrAzY
    Цитата:
    Требует также библиотеку "encoding.au3"
    Encoding UDF
     

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 23:47 26-08-2011
    VasiliyRus



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Споткнулся в самом начале - не открыватся файл excel:

    Код:
     
    #include <Excel.au3>
     
    $sFilePath1 = @ScriptDir & "\123.xls" ;This file should already exist
    $oExcel = _ExcelBookOpen($sFilePath1)
     
    If @error = 1 Then
        MsgBox(0, "Error!", "Unable to Create the Excel Object")
        Exit
    ElseIf @error = 2 Then
        MsgBox(0, "Error!", "File does not exist - Shame on you!")
        Exit
    EndIf

     
    Выдаёт ошибку Unable to Create the Excel Object.
    Что не так ? Файл на месте.

    Всего записей: 152 | Зарегистр. 03-12-2008 | Отправлено: 02:32 27-08-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VasiliyRus
    Наверно офис должен быть установлен, у меня не установлен и таже ошибка. Кстати, пример из справки англ. справки, а в шапке есть русская справка с переведённым разделом Excel.

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 10:23 27-08-2011
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, почему я не могу получить токен, необходимый для работы со службами Гугла? Авторизацию прошел, а вот с токеном - засада. Такое ощущение, что куки не передаются.
    Код
    Разобрался

    Всего записей: 3265 | Зарегистр. 30-05-2007 | Отправлено: 12:38 27-08-2011 | Исправлено: Zloy_Gelud, 13:02 27-08-2011
    Zakkazak



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    нужен скриптик, который бы срабатывал бы в хелп-файлах (chm)
    скрипт должен копировать адрес просматриваемой страницы
     
    и желательно после этого, переключался бы в посл. активное приложение и вставлял бы адрес тама
     
    п.с.
    скрипт собираюсь повесить на жест мышки

    Всего записей: 995 | Зарегистр. 12-01-2005 | Отправлено: 18:48 29-08-2011
    REEAL_CrAzY

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть ли что-нибудь роде функции "_IsPressed"?  
    Я решил сделать простенькую игру, кто больше раз жмакнет пробел за 10 секунд. Но _IsPressed реагирует не только на отдельные жмаки, но и на заимание. (например, я зажал пробел и переменная, в которой количество нажатий стала очень быстро увеличиваться)
    Вот код, если посмотрите, как это работает, то сразу поймёте.
     

    Код:
     
    #include <GUIConstants.au3>
    #include <Misc.au3>
     
     
    $HowManyPressed = 0
     
    $dll = DLLOpen("user32.dll")
     
    $Form1 = GUICreate("Пробеложмакалка", 335, 214, 390, 223)
    GUISetBkColor(0xFFFF00)
    GUICtrlCreateLabel("Нажимай на пробел! Сколько раз ты сможешь нажать за 10 секунд?", 8, 8, 300, 80)
    GUICtrlSetFont(-1, 10, 800, 0, "Arial Black")
    $Label = GUICtrlCreateLabel($HowManyPressed, 145, 120, 300, 80)
    GUICtrlSetFont(-1, 50, 800, 0, "Arial Black")
    GUISetState(@SW_SHOW)
     
     
    While 1
        $nMsg = GUIGetMsg()
        select  
            Case $nMsg = $GUI_EVENT_CLOSE
                Exit
            case _IsPressed(20, $dll)
                $HowManyPressed = $HowManyPressed + 1
                GuiCtrlSetData ($Label, $HowManyPressed)
        EndSelect
    WEnd
     
     

     
    Это пока только наброски, когда решу проблему с пробелом, сделаю нормально.

    Всего записей: 42 | Зарегистр. 24-04-2011 | Отправлено: 22:06 29-08-2011 | Исправлено: REEAL_CrAzY, 22:07 29-08-2011
    prostouser



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите, как нажать на ссылку в IE с помощью
    _IELinkClickByText, если искомый тексти из двух слов между которыми вместо пробела стоит <br />
    как нажать на ссылку _IEImgClick, если искомая картинка вставлена не через html, а через CSS как фоновая ?

    Всего записей: 224 | Зарегистр. 17-12-2003 | Отправлено: 23:33 29-08-2011
    ah1n1

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

    Цитата:
    Как безопасно вызвать метод или получить свойство у объекта, не вызвав ошибки?  
     С другими тэгами хватало проверки как в начале кода, а с этим изредка выходит ошибка.  
     Пробовал получать с помощью _IEPropertyGet, но эффект тот же. Как еще можно проверить объект до использования? Существуют ли в AutoIt конструкции try..except?  
       
     
    Код:     $oLIs = _IETagNameGetCollection ($oIE, "li")  
         If @error <> $_IEStatus_Success Then  
             Return  
         EndIf  
         For $oLI In $oLIs  
              If StringInStr($oLI.title, "текст") Then  
                                 ....  
             EndIf  
         Next  
       
     
     
       
     ==> The requested action with this object has failed.:  
     If StringInStr($oLI.title, "????? ?? ??????????? ????? ? ?????????") Then  
     If StringInStr($oLI.title^ ERROR

    Такая же проблема, что делать в этом случае?

    Всего записей: 1 | Зарегистр. 30-08-2011 | Отправлено: 11:50 30-08-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Сделал функцию поиска файлов в подкаталогах Подробнее... Поддерживает маску, перечисление типов файлов через ";", исключение типов файлов, уровень вложенности, полный или относительный путь или только имена. результат либо текстовый список с переносом строк, либо массив. Обновлено 2 раза.

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 18:45 30-08-2011 | Исправлено: AZJIO, 01:16 04-09-2011
    Black666angel



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите что делаю не так
    почему то в место (& $In &) пишет (4) откуда он её берет
    хотя по идеи должен оставлять пустое место или вписывать то что я вписываю в (GUICtrlCreateInput)


    Цитата:
    #include <GUIConstants.au3>
     
    $Form1 = GUICreate("Form1", 633, 453, 193, 125)
    $Button1 = GUICtrlCreateButton("Button1", 95, 135, 75, 25, 0)
    $In = GUICtrlCreateInput("", 25, 20, 256, 21)
    GUISetState(@SW_SHOW)
     
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
     
            Case $Button1
    ;        $file = FileOpen("test.txt", 10)
            FileWrite("test.txt", "prog[pn]=['" & $In &"']")
            ExitLoop
        EndSwitch
    WEnd

    Всего записей: 148 | Зарегистр. 05-09-2010 | Отправлено: 05:56 31-08-2011 | Исправлено: Black666angel, 22:38 31-08-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Black666angel
    Цитата:
    почему то в место (& $In &) пишет (4) откуда он её берет
    Вы ID записываете. Поменяйте на
    Код:
    ;...
    FileWrite(@ScriptDir & "\test.txt", "prog[pn]=['" & GUICtrlRead($In) & "']")
    ;...А лучше на
    $sTextRead = GUICtrlRead($In)
    If $sTextRead Then
        FileWrite(@ScriptDir & "\test.txt", "prog[pn]=['" & $sTextRead & "']")
    EndIf
    ;...

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 08:49 31-08-2011 | Исправлено: madmasles, 13:50 31-08-2011
       

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