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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как убрать/скрыть  header(шапку) из объекта ListView?

    Всего записей: 3267 | Зарегистр. 30-05-2007 | Отправлено: 09:45 14-10-2010
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zloy_Gelud,
    Цитата:
    Как убрать/скрыть  header(шапку) из объекта ListView?
    Использовать стиль $LVS_NOCOLUMNHEADER.
     

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 10:26 14-10-2010
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles -- спасибо. Как то сам не додумался в стили посмотреть.
     
    Добавлено:
    madmasles -- а не подскажешь как получить тип объекта (комбобокс, инпут и т.д.) по его ID или дескриптору?

    Всего записей: 3267 | Зарегистр. 30-05-2007 | Отправлено: 10:38 14-10-2010 | Исправлено: Zloy_Gelud, 11:30 14-10-2010
    frb_noname

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

    Цитата:
    crotoff

    Пример попробую, хотя судя по коду, у меня почти то же самое..
     
    Еще вопрос возник. Есть элемент list с определенным количеством записей, которые формируются из БД SQLite. При изменении конкретной записи, для отображение ее в списке, делаю повторно формирование ВСЕГО списка из БД.  
     
    Как реализовать обновление ТОЛЬКО ОДНОЙ записи списка (активной) чтобы сэкономить время ?

    Всего записей: 47 | Зарегистр. 03-11-2008 | Отправлено: 12:08 14-10-2010
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    frb_noname,
    Посмотрите в справке функции _GUICtrlListBox_GetCurSel(), _GUICtrlListBox_ReplaceString().

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 12:23 14-10-2010
    AZJIO



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

    Цитата:
    Есть элемент list
    В нём нельзя изменять обновлением, только очистка и вставка. Для обновления используй тип ListView.
    Попробовал UDF работает.  
     
    Кому интересно WM-Сообщения Windows - сделал 62 примера использования. (добавил WM_DROPFILES, WM_TIMER, WM_DEVICECHANGE, WM_DISPLAYCHANGE и др., обновил WM_GETMINMAXINFO, WM_COMMAND)

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 12:33 14-10-2010 | Исправлено: AZJIO, 18:37 19-10-2010
    crotoff

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всё, добил скрипт
     
    Подробнее...
     
    осталось теперь оптимизировать на предмет скорости - может кто подскажет как подсократить лишние клики, вызовы и ожидания?

    Всего записей: 961 | Зарегистр. 17-04-2007 | Отправлено: 12:44 14-10-2010
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как получить индекс выбранного пункта объекта List при клике на нем?
    Извратился таким образом:

    Код:
    Case $LBN_SELCHANGE
        Local $nID = _GUICtrlListBox_GetCurSel($hWndListBox)
        if $nID <> -1 Then
            $nID = _GUICtrlListBox_GetItemData($hWndListBox, $nID)
            _DB_Display($nID)
        EndIf

    Не думаю что это хороший вариант. Может есть другой способ получать индекс, например, из структуры?

    Всего записей: 3267 | Зарегистр. 30-05-2007 | Отправлено: 13:53 14-10-2010 | Исправлено: Zloy_Gelud, 14:12 14-10-2010
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Возможно ли в объект Input устанавливать маску вводимых символов? Например, только числа или только выражение '####.####', где # - числа.

    Всего записей: 3267 | Зарегистр. 30-05-2007 | Отправлено: 14:03 15-10-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zloy_Gelud
    Возможно. обсуждалось. Делай проверку на принадлежность целым числам IsInt.

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 14:09 15-10-2010
    aljabr

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравия желаю!
    Можно ли без знания скриптования переправлять вложения с gmail на другую бесплатную почту?
    Тут вроде есть скрипт, но я не знаю как все это настроить...
    http://www.autoitscript.com/forum/index.php?showtopic=23860
    Мог бы кто-нибудь помочь?

    Всего записей: 616 | Зарегистр. 19-09-2009 | Отправлено: 16:11 15-10-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто нибудь разгадайте загадку, уже час бьюсь

    Код:
    $ee=0x04000500
    $x=BinaryMid($ee, 1, 2)
    $y=BinaryMid($ee, 3, 2)
    MsgBox(0, 'Сообщение', 'x='&$x&@CRLF&'y='&$y)

    Нужно чтоб получилось 0x0400 и 0x0500, которые с помощью Dec() конвертируются в 1024 и 1280. Другое число беру, работает нормально, это же никак не хочет возвращать, что только не вводил.

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 17:48 15-10-2010
    Zloy_Gelud



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

    Код:
    $ee='0x04000500'
    $x=StringTrimLeft(BinaryMid($ee, 1, 2), 2)
    $y=StringTrimLeft(BinaryMid($ee, 3, 2), 2)
    MsgBox(0, 'Сообщение', 'x='&Dec($x)&@CRLF&'y='&Dec($y))

    Всего записей: 3267 | Зарегистр. 30-05-2007 | Отправлено: 18:22 15-10-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zloy_Gelud
    Если в текст переделать, то я знаю что работает. Но $lParam не возвращается как текст, а String(0x04000500) у меня не переводит это число в текст. Так что пока не подходит.

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 18:27 15-10-2010
    Zloy_Gelud



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

    Код:
    $ee=Hex(0x04000500)
    $x=StringMid($ee, 1, 4)
    $y=StringMid($ee, 5, 8)
    MsgBox(0, 'Сообщение', 'x='&Dec($x)&@CRLF&'y='&Dec($y))

    Всего записей: 3267 | Зарегистр. 30-05-2007 | Отправлено: 19:29 15-10-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zloy_Gelud
    Работает.
     
    Хотел попробовать реализовать проверку ввода чисел в инпут используя сообщения Windows - WM_COMMAND, WM_KEYDOWN, например при активировании инпута срабатывает WM_COMMAND и регистрирует проверку нажатых клавиш - WM_KEYDOWN, то есть буквы совсем не позволит вводить. Но Gui с WM_KEYDOWN как-то странно работает, как только добавляю элемен интерфейса (кнопку или инпут), то перестаёт работать вызов WM_KEYDOWN. WM-Сообщения Windows - обновил 2 раза (62шт).

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 06:58 16-10-2010 | Исправлено: AZJIO, 18:36 19-10-2010
    coolpunk



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как безопасно вызвать метод или получить свойство у объекта, не вызвав ошибки?
    С другими тэгами хватало проверки как в начале кода, а с этим изредка выходит ошибка.
    Пробовал получать с помощью _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

    Всего записей: 543 | Зарегистр. 16-04-2004 | Отправлено: 07:20 22-10-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Почему Sleep(10) меньше 10 не работает? Пример

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 18:38 23-10-2010 | Исправлено: AZJIO, 18:41 23-10-2010
    asdf8

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня тоже не работает Sleep меньше 10 :
     

    Код:
     
    For $i=1 To 11
        $begin = TimerInit()
        For $j=1 To 100
            Sleep($i)
        Next
        $dif = TimerDiff($begin)
        ConsoleWrite('-> dif = ' & $dif & '   Sleep = ' & $i & ' x 100 mS' & @CRLF)
    Next
     
    $begin = TimerInit()
    For $i=1 To 100
        
    Next
    $dif = TimerDiff($begin)
     
    ConsoleWrite('-> dif = ' & $dif & @CRLF)
     

    Всего записей: 92 | Зарегистр. 06-05-2007 | Отправлено: 00:00 24-10-2010
    zabi757

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста скрипт для нажатие одной и той же клавиши в течении большого промежутка вермени ( около 10 часов). Заранее спасибо.
     
    P.S
    Если можно, то ответ на мыло pk67.san@yandex.ru

    Всего записей: 1 | Зарегистр. 25-10-2010 | Отправлено: 04:36 25-10-2010
       

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