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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    Позиции текста в шаблоне. В утилите приходится либо пользоваться одним шаблоном, либо вручную выделять текст и нажимать "Добавить" (предвариательно очистив позиции). То есть вручную делать раскраску кода.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 00:23 05-01-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO
    Я что то не понимаю, какая связь между раскраской и темами в SciTE?
    Что конкретно нужно сделать?

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 02:15 05-01-2011
    MoBiRo

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как сделать трей-меню без галочек? Создал трей-меню, а там галочки по умолчанию x)
     
    Добавлено:
    Как добавить рисунок в ListView? Для этого нужна дополнительная библиотека?
    Если вам не тяжело, сделайте пример, где в ListView с двумя полями (1 - для картинки, 2 - текст), по нажатию одной кнопки добавляется рисунок, по нажатию другой удаляется. Будет замечательным наглядным примером =)

    Всего записей: 68 | Зарегистр. 11-11-2009 | Отправлено: 03:30 05-01-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    Окошко RichEdit мне приходится раскрашивать функцией  

    Код:
    _GuiCtrlRichEdit_SetSel($hRichEdit, 45, 57)
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $BGR)
    _GUICtrlRichEdit_Deselect($hRichEdit)
    , где 45 - начало слова, 57 - конец слова. Утилита  содержит готовый шаблон с готовыми позициями для раскраски текста в элементе RichEdit ($hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 10, 10, 300, 220, $ES_MULTILINE)).
    Можно ли получить массив позиций,
    White space = 12;33 | 45,57
    Comment line= 34,44 | 58, 67
    и т.д.
     
    Добавлено:
    MoBiRo

    Цитата:
    трей-меню без галочек

    Opt("TrayMenuMode", 3)

    Цитата:
    Как добавить рисунок в ListView?
    ссылка

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 06:05 05-01-2011 | Исправлено: AZJIO, 11:30 05-01-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    MoBiRo 03:30 05-01-2011
    Цитата:
    Как сделать трей-меню без галочек?


    Код:
    Opt("TrayMenuMode", 1+2)

     
    AZJIO 06:05 05-01-2011
    Цитата:
    Окошко RichEdit мне приходится раскрашивать функцией

    А почему бы тебе не сделать как я сделал в Au3ToPost, там есть предпросмотр раскраски. Идея в том, что разукрашенный текст пишется в html-файл, далее используется встроенный объект IE чтобы отобразить эту самую страницу.
     

    Цитата:
    Можно ли получить массив позиций

    Даже и не знаю, нужно копаться в командах SciT'а.

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 10:46 05-01-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    Мне нужен не просто отобразить, а возможность регулировать цвет в реальном времени. Именно это отличает от SciteConfig, в котором невозможно заранее увидеть как будет выглядеть цвет текста на фоне.
    Опять обновил утилитку.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 11:36 05-01-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 11:36 05-01-2011
    Цитата:
    Мне нужен не просто отобразить, а возможность регулировать цвет в реальном времени

    Я бы тогда использовал два Edit-поля, в одном вводится код, а в другом отображается предпросмотр.

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 21:01 05-01-2011
    HandyCache

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть файлы такого вида ar189x001, ar189x002, ar189x003, arp189x001, arp189x002, arp189x003 и т.д  
    Нужно все файлы начинающиеся с ar001, arp001, где 001 число от 001 до 600, разложить по папкам от 001 до 600
     
    Возможно ли такое сделать с AutoIt или может кто знает программу?

    Всего записей: 130 | Зарегистр. 09-10-2008 | Отправлено: 09:09 07-01-2011
    madmasles

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

    Цитата:
    Есть файлы такого вида
    Эти файлы в одной папке или раскиданы по диску(дискам)?

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 13:01 07-01-2011
    HandyCache

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

    Цитата:
    Эти файлы в одной папке или раскиданы по диску(дискам)?

    В одной папке.
     

    Всего записей: 130 | Зарегистр. 09-10-2008 | Отправлено: 13:11 07-01-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    HandyCache,
    Попробуйте так:
    Код:
    #include <File.au3>
     
    $sDirFrom = @ScriptDir ;папка в которой ищем
    $sDirTo = @ScriptDir & '\test' ;папка куда перемещаем
     
    $aFileList = _FileListToArray($sDirFrom, 'ar*', 1)
    If @error = 4 Then
        MsgBox(16, 'Error', 'Нет таких файлов в папке ' & $sDirFrom)
        Exit
    EndIf
    For $i = 1 To $aFileList[0]
        If StringRegExp($aFileList[$i], '(ar|arp)([0-5]\d{2})x', 0) Or _
                StringRegExp($aFileList[$i], '(ar|arp)(600)x', 0) Then
            FileMove($sDirFrom & '\' & $aFileList[$i], _
                    $sDirTo & '\' & StringRegExpReplace($aFileList[$i], '^(?:ar|arp)(\d{3})x.*', '\1') & _
                    '\' & $aFileList[$i], 9)
        EndIf
    Next

    Если не надо файлы перезаписывать, то
    Код:
    ;...
    FileMove($sDirFrom & '\' & $aFileList[$i], _
            $sDirTo & '\' & StringRegExpReplace($aFileList[$i], '^(?:ar|arp)(\d{3})x.*', '\1') & _
            '\' & $aFileList[$i], 8)
    ;...

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 13:38 07-01-2011 | Исправлено: madmasles, 14:50 07-01-2011
    HandyCache

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

    Цитата:
    Autoit Error
    Line 6  (File "C:\Foto\Script.au3"):
    $aFileList = _FileListToanray($sDirFrom, 'ar*', 1)
    $aFileList = ^ ERROR
    Error: Unknown function name.

    Скрипт положил в папку с файлами.
    Нужно ли прописывать пути?

    Цитата:
    $sDirFrom = @ScriptDir ;папка в которой ищем  
    $sDirTo = @ScriptDir & '\test' ;папка куда перемещаем

    Или достаточно положить скрипт в папку с файлами?

    Всего записей: 130 | Зарегистр. 09-10-2008 | Отправлено: 15:28 07-01-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    HandyCache,
    1. У Вас в папке ...\AutoIt3\Include\ есть файл File.au3?
    2. Какая у Вас версия AutoIt? У меня на 3.3.6.1 все работает.
     
    PS
    Такой функции, как у Вас: _FileListToanray() нет. Есть функция _FileListToArray().
     

    Цитата:
    Или достаточно положить скрипт в папку с файлами?
    Скрипт можно класть куда угодно, только надо правильно указать пути $sDirFrom и $sDirTo (их прописывать надо обязательно).

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 15:43 07-01-2011 | Исправлено: madmasles, 15:57 07-01-2011
    HandyCache

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
    Спасибо! Всё работает!

    Цитата:
    Есть файлы такого вида ar189x001, ar189x002, ar189x003, arp189x001, arp189x002, arp189x003 и т.д    
    Нужно все файлы начинающиеся с ar001, arp001, где 001 число от 001 до 600, разложить по папкам от 001 до 600

    А что нужно изменить в скрипте где 001 число от 001 до 999?  

    Всего записей: 130 | Зарегистр. 09-10-2008 | Отправлено: 16:26 07-01-2011 | Исправлено: HandyCache, 16:52 07-01-2011
    madmasles

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

    Цитата:
    А что нужно изменить в скрипте где 001 число от 001 до 999?


    Код:
    #include <File.au3>
     
    $sDirFrom = @ScriptDir ;папка в которой ищем
    $sDirTo = @ScriptDir & '\test' ;папка куда перемещаем
     
    If Not FileExists($sDirFrom) Then
        MsgBox(16, 'Error', 'Нет такой папки ' & $sDirFrom)
        Exit
    EndIf
    $aFileList = _FileListToArray($sDirFrom, 'ar*', 1)
    If @error = 4 Then
        MsgBox(16, 'Error', 'Нет таких файлов в папке ' & $sDirFrom)
        Exit
    EndIf
    For $i = 1 To $aFileList[0]
        If StringRegExp($aFileList[$i], '(ar|arp)(\d{3})x', 0) And _
                Not StringRegExp($aFileList[$i], '(ar|arp)(000)x', 0) Then
            FileMove($sDirFrom & '\' & $aFileList[$i], _
                    $sDirTo & '\' & StringRegExpReplace($aFileList[$i], '^(?:ar|arp)(\d{3})x.*', '\1') & _
                    '\' & $aFileList[$i], 9)
        EndIf
    Next

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 17:04 07-01-2011 | Исправлено: madmasles, 20:24 07-01-2011
    HandyCache

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

    Всего записей: 130 | Зарегистр. 09-10-2008 | Отправлено: 17:45 07-01-2011
    WETUI

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите как сделать с помощью autoit копирование текста из документа(C:\Documents and Settings\xxx\Мои документы\GTA San Andreas User Files\SAMP\chatlog.txt) в окно аськи(Title (1)Class:gdkWindowToplevel)
    есть игра gtasanandreas(samp) когда играеш по сети создается текстовый документ с чатом,во время игры его можно свободно читать(я имею в виду открывать и закрывать,если не закрыть он не обновляется),как сделать так чтобы раз в 30 секунд копировались 15 строчек снизу(то есть последние) и вставлялись в окно аськи ,далее нажималась клавиша ентер.
    без свертывания игры возможно такое?
     

    Всего записей: 58 | Зарегистр. 06-04-2010 | Отправлено: 16:08 09-01-2011 | Исправлено: WETUI, 00:04 10-01-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    WETUI,
    Вернуть заданное количество последних строк из файла можно попробовать так:
    Код:
    $sFile = @ScriptDir & '\chatlog.txt';полный путь к файлу, который читаем.
    $iCount = 15 ;количество возвращаемых с конца строк
    $sPost = _GetLastLineCount($sFile, $iCount)
    If Not @error Then
        MsgBox(64, '', $sPost)
    Else
        MsgBox(16, '', 'error')
    EndIf
     
    Func _GetLastLineCount($sPath, $iLineCount, $sDelim = @CRLF)
        ;$sPath - полный путь к файлу
        ;$iLineCount - количество возвращаемых с конца строк
        ;$sDelim - разделитель строк (по умолчанию @CRLF, т.е. перенос строки)
        ;в случае успешного выполнения возвращает текст из заданного кол-ва последних строк
        ;с заданными разделителями и @error = 0. Если в файле строк меньше или равно $iLineCount,
        ;то возвращает все строки.
        ;в случае ошибки возвращает пустую строку и @error = 1.
        Local $hFile, $sText, $aTemp, $iStart, $sResult
        If Not FileExists($sPath) Then Return SetError(1)
        $hFile = FileOpen($sPath, 0)
        If $hFile = -1 Then Return SetError(1)
        $sText = FileRead($hFile)
        If Not @extended Then
            FileClose($hFile)
            Return SetError(1)
        EndIf
        FileClose($hFile)
        If StringInStr($sText, @LF) Then
            $aTemp = StringSplit(StringStripCR($sText), @LF)
        ElseIf StringInStr($sText, @CR) Then
            $aTemp = StringSplit($sText, @CR)
        Else
            Return SetError(0, 0, $sText)
        EndIf
        If Not $aTemp[0] Then Return SetError(1)
        If $aTemp[0] <= $iLineCount Then
            $iLineCount = $aTemp[0]
            $iStart = 1
        Else
            $iStart = $aTemp[0] - $iLineCount + 1
        EndIf
        For $i = $iStart To $aTemp[0]
            If $aTemp[$i] Then
                If $i <> $aTemp[0] Then
                    $sResult &= $aTemp[$i] & $sDelim
                Else
                    $sResult &= $aTemp[$i]
                EndIf
            EndIf
        Next
        If Not $sResult Then Return SetError(1)
        Return SetError(0, 0, $sResult)
    EndFunc   ;==>_GetLastLineCount

     
    PS
    Пустые строки игнорируются, т.е. если из 15 последних строк 3 - пустые, то вернет 12. Это можно изменить.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 03:30 10-01-2011 | Исправлено: madmasles, 22:11 10-01-2011
    frankin

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

    Всего записей: 13 | Зарегистр. 15-06-2009 | Отправлено: 20:51 10-01-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    frankin
    Encoding UDF - Библиотека для работы с кодировками строк

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 21:09 10-01-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