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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 2)

Модерирует : gyra, Maz

Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



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

AutoIt3
(Часть 1)

 
 
Домашняя страница: http://www.autoitscript.com
Страница загрузки: http://www.autoitscript.com/autoit3/downloads.php
 
Описание:

Цитата:
AutoIt v3 - это язык для написания сценариев, напоминающий BASIC. Основным его назначением является автоматизация работ с Windows GUI (графическим интерфейсом пользователя MS Windows). Для выполнения этой сложной задачи предоставляется комбинация испытанных методов, включающих в себя эмуляцию нажатий комбинаций клавиш клавиатуры, перемещения указателя мыши, управление окнами и их визуальными элементами. Как показывает практика, эти "приводные ремни" весьма эффективны для получения работающих решений в ситуациях, когда другие стандартные средства (например, VBScript и SendKeys) оказываются бессильны.
Умеет он очень и очень многое! Бесплатный.

 
Помощь по AutoIT:
  • Справку на русском (и не только) вы всегда(?) сможете найти тут
  • Учебник по AutoIt для начинающих
  • Видео-руководства на YouTube (англ.)
  • AutoIt v3: Your Quick Guide (652 КБ) - Ваш быстрый гид в мир AutoIt-а (книга в формате pdf) - Та же книжка online.
  • Справочник по командам rundll32
  • Справка WinAPI (Win 32 API по шагам)
  • Русский справочник по API-функциям
  • Полезная информация по WinAPI на русском
  • Помощь по регулярным выражениям
  • Tutorial on DllCall() & DllStructs - Небольшое (пока?) руководство по использованию функции DllCall*()
     
     
    Ресурсы, посвящённые AutoIt
  • AutoIt в Википедии
  • AutoIt Russian Community - Русское сообщество AutoIt
  • Jabber-конференция для обсуждения мелких вопросов касающихся AutoIt
  • Обзор скриптового языка AutoIt (рус.)
  • AutoIt на Yahoo! Groups
  • Раздел в конфиренции OSzone.net, посвящённый AutoIt
  • Пополняющийся со временем сайт с полезными утилитами и функциями на AutoIt
  • Коллекция AutoIt-скриптов от Sanja Alone
  • Коллекция AutoIt-скриптов от MSFN (могут быть устаревшие).
  • Коллекция AutoIt-скриптов от AZJIO
     
     
    !!! Полезные советы и заметки - новичкам и не только
     
     
  • Рекомендации по написанию скриптов
     
     
    Инструменты для AutoIt:
  • AutoIt Path Switcher - Переключение пути к папке AutoIt.
  • AutoIt3Wrapper [Страница закачки] - Программа для компиляции скрипта с дополнительными возможностями (добавление значка, описания и т.п).
  • Koda (724 Kb) - Визуализация работы с GUI - аналог Visual Basic.
  • CodeWizard (400 Kb) - нечто простенькое на вариант Koda.
  • AutoItMacroGenerator (34 Kb) - Записывает в реальном времени действия пользователя в AutoIt-код.
  • ScriptWriter (78 Kb) - Аналог AutoItMacroGenerator.
  • API Constants (1042 Kb) - Утилита для просмотра всех констант API-функции и не только.
  • Страница закачки утилит, которые идут в отдельной поставке редактора SciTE.
  • AutoIt-меню для браузера Opera.
     
    Готовые скрипты и программы с открытым кодом на AutoIt:
  • Desktop Icons Restorator - Скрипт-программа для сохранения/восстановления позиции значков рабочего стола.
  • CaptureIt - Утилита для захвата изображений с экрана.
  • SwitchIt - Скрипт для конвертирования выделенного текста.
  • Скрипт раскраски кода AutoIt для публикации в форумах
     
    Общие вопросы и решения на Autoit:
  • Обработчик скриптов добавляющий отладчик (debugger) - Последняя версия: AutoItScript Add Debugger
  • Интеракция между несколькими скриптами
  • Пример использование интеракции между скриптами - Добавление элементов GUI с внешнего модуля
  • Чтение и запись данных с/в окна/о SciTE
  • Пример автообновления версии своего приложения
  • Копирование большого файла с отображением данных прогресса
  • Создание динамического меню в Tray Icon (значок в области уведомлений)
  • Пример создания своего мастера (Wizard)
  • Метод, позволяющий запускать код VBS без создания временных файлов
  • Описание функции GUIRegisterMsg()
  • Пример перехвата вводимых символов с клавиатуры
  • Пример деактивирования TabItem
  • Пример вывода лога в Edit-поле (с поддержкой форматирования текста)
  • Пример остановки/начало выполнения скрипта + Слежение за буфером обмена с заменой неподдерживаемых в имени файла символов
  • Подключение приложения (GUI) к буферу обмена
  • Пример использования меню с значками (ModernMenu.au3) -> Список программ в меню значка в системном трее
  • Пример подсчёта интервала времени между нажатиями клавиш
  • Слежение нажатых элементов в текущем окне (под курсором)
  • Написание instant messaging Бота на AutoIt
  • Способ, позволяющий посылать нажатие клавиши в неактивное окно (не путать со свёрнутым)
  • Сервер <=> Клиент - Пример передачи файла
  • Пример отображения только элементов GUI (без самой оболочки)
  • Модуль, превращающий ваше приложение в Trial-версию
  • Слежение за выделенным текстом и с последующим его помещением в файл
     
    Отдельные функции и библиотеки (UDF):
  • Функции, относящиеся к интернету
  • Функции для работы с процессами и окнами
  • Функции для работы с файлами
  • Функции для GUI/Tray
  • Системные функции
  • Разное (то, что не подпадает под другие категории)
     


     
    За шапкой следит ViSiToR  

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 14:47 12-01-2009 | Исправлено: Maz, 11:50 17-04-2017
    Kar1son

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Спасибо за подсказки! Но все равно не смог найти: в твоем примере и примере в справке событие Case $msg = $listview наступает только по щелчку в заголовке, а надо чтобы ловился щелчек по строчке в ListView.  
    если вместо этого поставить Case $msg = $item1 то щелчек по $item1 ловится, но ввиду того что у меня более ста таких итемов, то перебрать их все просто не реально. сижу пробую разные комбинации но пока не нашел ответа...

    Всего записей: 187 | Зарегистр. 23-08-2006 | Отправлено: 15:45 29-03-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kar1son
    If GUICtrlRead($item)=1 Then  
    кнопка одна для всех, эта кнопка проверяет чекбоксы, если отмечен, тогда ... прописываешь команду на выполнение.
    _______
    экспериментирую, у меня тоже пока не работает, но должно, иначе зачем её придумали.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 18:13 29-03-2010 | Исправлено: AZJIO, 18:38 29-03-2010
    Hackproof



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

    Всего записей: 106 | Зарегистр. 24-05-2008 | Отправлено: 21:06 29-03-2010 | Исправлено: Hackproof, 21:23 29-03-2010
    gregaz



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

    Цитата:
    Case $msg = $listview наступает только по щелчку в заголовке, а надо чтобы ловился щелчек по строчке в ListView.  

    Вот вариант:

    Код:
     
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    $hGUI= GUICreate("Test ListView", 220, 250)
    $sStyle=BitOR( $LVS_REPORT,$LVS_ShowSELALWAYS )
    $sExStyle=BitOR( $LVS_EX_GRIDLINES,$LVS_EX_FULLROWSELECT,$LVS_EX_CHECKBOXES )
    $hListView = GUICtrlCreateListView  ('' ,10,10,200,150 , $sStyle ,$sExStyle)
    _GUICtrlListView_InsertColumn ( $hListView , 0, 'FileName'    , 100 )  
    _GUICtrlListView_InsertColumn ( $hListView , 1, 'FileFullName', 200 )
     For $i=0 To 2  
       _GUICtrlListView_AddItem($hListView,'Item ' & $i)
       _GUICtrlListView_AddSubItem($hListView, $i, 'SubItem ' & $i & '-1',1)
    Next
     
    GUISetState   ()
     
    While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $GUI_EVENT_CLOSE
             Exit
          Case $GUI_EVENT_PRIMARYDOWN
             $aCur_Info = GUIGetCursorInfo($hGUI)
             If $aCur_Info[4]=$hListView Then
                $iItemLV= _GUICtrlListView_GetHotItem($hListView)
                MsgBox(0, "Info",$iItemLV &  " Item clicked", 1)
             EndIf
          Case else  
             ContinueLoop
       EndSwitch
    WEnd
     

    Всего записей: 79 | Зарегистр. 02-06-2007 | Отправлено: 22:20 29-03-2010 | Исправлено: gregaz, 22:38 29-03-2010
    Cosmogor



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

    Цитата:
    Ну и попытался сделать вариант с иконками SaveFolders-Tray+иконки

    В контексте (редактировать сессию) не удаляется строки
    где в названии присутствует http://
    Не добавляется пункт, если перетащить мышкой в окно редактора ярлык какой нибудь папки.  
    При первом запуске SaveFolders иконка в трее была, затем при последующих запусках
    она заменилась на стандартную AutoIt.
    При перезапуске SaveFolders, ещё некоторое время в трее остаётся вторая иконка SaveFolders пока не наведёшь на неё мышкой.
    Да, еще при закрытии SaveFolders, иконка в трее тоже некоторое время висит.
    Извини, немного покритиковал.      
    А так вообщем неплохо.

    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 22:27 29-03-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Cosmogor
    http://  и ярлыки я не рассчитывал их добавление, хотя можно защиту делать.  

    Цитата:
    При первом запуске SaveFolders иконка в трее была, затем при последующих запусках  
    я в скрипте оставил оставил иконку на скомпилированный exe, поэтому нужно выбрать иконку при компиляции, например вот.
    Исчезновение иконки можно сделать только через внешний скрипт подобно функции restart (или скрыть её перед выходом).
    http:// - это добавить невозможно, так как каталог не может содержить символов : /

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 08:32 30-03-2010 | Исправлено: AZJIO, 23:15 30-03-2010
    elchupakabra



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста как можно скриптом определить разрядность системы (x86/x64) или как вариант, какой-нибудь 100% существующий в x64 файл, чтобы просто организовать его проверку. Заранее спасибо.

    Всего записей: 1571 | Зарегистр. 05-11-2005 | Отправлено: 10:33 31-03-2010
    NIKZZZZ



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

    Цитата:
    Подскажите пожалуйста как можно скриптом определить разрядность системы (x86/x64)

    В справке "System info macros"
    @OSArch - Returns one of the following: "X86", "IA64", "X64" - this is the architecture type of the currently running operating system.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 10:43 31-03-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обновил SaveFolders-Tray+иконки
    Добавил горячие клавиши:
    F2 - умное переименование
    F9 - создание текстового файла
    F11 - создание папки
    ALT+ESC - выход из программы
    Если это не нужно закомментируйте горячие клавиши, строки 116-118.
     
    Cosmogor
    У меня подозрение, что ссылка попала с iexplore.exe, исправил, теперь не должно. Также исправил с иконками, теперь исчезают сразу и у скрипта всегда нормальная иконка и у скомпилированного и нескомпилированного.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 04:12 01-04-2010 | Исправлено: AZJIO, 13:20 01-04-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gregaz
    Этот вариант не подходит для Kar1son, вот более подходящий:

    Код:
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    $hGUI= GUICreate("Тест ListView", 220, 180)
    ; тире делает колонку шире, стили скрывают заголовок колонки, сохранять выделение при потери фокуса; дополнительные стили - подсветка всей выбранной строки, чекбоксы в списке
    $hListView = GUICtrlCreateListView  ('---------------' ,5,5,210,70 , $LVS_NOCOLUMNHEADER + $LVS_SHOWSELALWAYS, $LVS_EX_FULLROWSELECT + $LVS_EX_CHECKBOXES)
    GUICtrlSetBkColor(-1,0xf0f0f0) ; 0xE0DFE3 - цвет стандартный серый
    $item1=_GUICtrlListView_AddItem($hListView,'итем' ) ; создаём пункты
    $item2=_GUICtrlListView_AddItem($hListView,'ха' )
    $item3=_GUICtrlListView_AddItem($hListView,'новое' )
    $item4=_GUICtrlListView_AddItem($hListView,'вот ещё' )
     
    _GUICtrlListView_SetItemChecked($hListView,$item1) ; отмечаем галочкой чекбоксы
    _GUICtrlListView_SetItemChecked($hListView, $item3)
     
    $start=GUICtrlCreateButton ("жми", 135,95,55,22)
    $Pos=GUICtrlCreateButton ("размер", 35,95,55,22)
    GUICtrlCreateLabel ('В отличии от обычных чекбоксов в окне, в ListView есть прокрутка в ящике, если строки не вмещаются.', 5,125,210,50)
     
    GUISetState   ()
     
    While 1
        $msg = GUIGetMsg()
        Select
            Case
    $msg = $start ; проверяем галочки в чекбоксах
                If _GUICtrlListView_GetItemChecked($hListView,$item1)=1 Then MsgBox(0, "Сообщение",' "итем" отмечен.', 4)
                If _GUICtrlListView_GetItemChecked($hListView,$item2)=1 Then MsgBox(0, "Сообщение",' "ха" отмечен.', 4)
                If _GUICtrlListView_GetItemChecked($hListView,$item3)=1 Then MsgBox(0, "Сообщение",' "новое" отмечен.', 4)
                If _GUICtrlListView_GetItemChecked($hListView,$item4)=1 Then MsgBox(0, "Сообщение",' "вот ещё" отмечен.', 4)
            Case $msg = $Pos ; меняем размер для проверки скрола
                GUICtrlSetPos ($hListView, 5,5,210,80)
            Case $msg = -3
                ExitLoop
        EndSelect
    WEnd

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 14:22 01-04-2010 | Исправлено: AZJIO, 17:08 01-04-2010
    tashkent



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    задача: в заблокированном состоянии рабочего стола нужно отправить письмо. Почтовик по умолчанию MS Outlook 2003. Перед  отправкой надо зайти в параметры сообщения и выставить некоторые галочки. Сообщение я создаю (используя #include <INet.au3>), а вот далее как войти в параметры (view - options..)? Умом понимаю, что можно использовать что-то типа ControlSend...  
     
    UPD. Скрипт написан внимательным курением мануалов. Всем спасибо

    Всего записей: 146 | Зарегистр. 23-08-2004 | Отправлено: 14:48 01-04-2010 | Исправлено: tashkent, 13:00 02-04-2010
    rausNT

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите ПЛЗ с таким вопросом:
    Есть две программы. Из одной скрипт копирует значение поля в буфер обмена, делает активной окно другой программы, вставляет данные из буфера, возвращается к первой проге копирует следующее поле и собственно цикл. Проги нечего не знают друг о друге, предполагалось что это все должно набиваться ручками, но лениво. Скрипт мой работает отменно, НО напрягает что перед глазами прыгают эти два окна (утомляет смотреть)
     
    Собственно вопрос: как сделать чтобы видимым (активным?) было только окно результирующей проги, как будто бы данные добавлялись сами.
     
    ЗЫ гугление ничего не дало, ибо не полностью владею терминологией

    Всего записей: 3 | Зарегистр. 01-04-2010 | Отправлено: 00:14 02-04-2010
    U235

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    rausNT
    Чтобы скопировать значение поля в буфер обмена, не обязательно делать окно активным.
    Или можно вообще сделать окно невидимым. см. WinSetState, @SW_HIDE

    Всего записей: 884 | Зарегистр. 14-12-2005 | Отправлено: 03:37 02-04-2010
    rausNT

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

    Цитата:
    Чтобы скопировать значение поля в буфер обмена, не обязательно делать окно активным.  

    U235 спасибо, а нельзя ли какой нибудь пример кода, где ЭТО показано

    Всего записей: 3 | Зарегистр. 01-04-2010 | Отправлено: 08:47 02-04-2010
    tashkent



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

    Код:
     
    #include <INet.au3>
    #Include <WinAPI.au3>  
    #Include <UDFGlobalID.au3>
    .....
    _SetKeyboardLayout(419, $hWnd)
    .....
     

     
    выдается ошибка

    Код:
     
    E:\Autoit3\letter.au3 (31) : ==> Unknown function name.:
    _SetKeyboardLayout(419, $hWnd)
    ^ ERROR
     

    Где эта функция прописана?

    Всего записей: 146 | Зарегистр. 23-08-2004 | Отправлено: 10:59 02-04-2010
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tashkent
    Как с помощью AutoIt сменить раскладку клавиатуры
    На этой странице функцию ищите.
    Или здесь

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 11:57 02-04-2010 | Исправлено: madmasles, 12:00 02-04-2010
    U235

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

    Цитата:
    пример кода, где ЭТО показано


    Код:
    Run("Notepad",'',@SW_HIDE);
    Sleep(1000);
    ControlSetText ( "Безымянный", "", 'Edit1', "test-test"  )
    Sleep(5000);
    WinSetState('Безымянный','',@SW_SHOW);

    Всего записей: 884 | Зарегистр. 14-12-2005 | Отправлено: 12:07 02-04-2010 | Исправлено: U235, 12:09 02-04-2010
    tashkent



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    madmasles
    Спасибо, тормознул. Именно по этим ссылкам и настраивал, но в скрипт само тело функции не догадался вписать (вернее думал, что функция уже определена в других скриптах, идущих с Autoit)

    Всего записей: 146 | Зарегистр. 23-08-2004 | Отправлено: 12:38 02-04-2010
    rausNT

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    U235 спасибо, помогло... теперь работает близко к идеальному!!
     

    Всего записей: 3 | Зарегистр. 01-04-2010 | Отправлено: 14:46 02-04-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот посмотрите скрипт connect, выполненный на ListView. Позволяет проверить ресурсы в онлайне и подключиться к FTP тоталом.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 20:19 02-04-2010 | Исправлено: AZJIO, 12:54 03-04-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

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 2)
    Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru