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


Система IP-видеонаблюдения "Линия". Скачать бесплатную демо-версию для 16 камер. НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    vicbox777
    по мойму...все...ок....
    хотя в любом случае - у ynbIpb получиляс классный статус бар ..))
     
    ynbIpb
    делаешь защиту от "оооочень" разбирающихся?

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 17:18 10-03-2009
    talifero

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sproxy спасибо вроде получается.

    Всего записей: 14 | Зарегистр. 06-10-2007 | Отправлено: 17:20 10-03-2009
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Да вобщем защита от дураков.
    Хочу сделать сборник мини игр типа от алавара.
    И вместо оригинального EXE будет мой который после примитивной проверки диска будет запускать настоящий.
    Кстати ещё не продумал этот механизм. Есть у кого наработки?
    и нармально ли будет запускаться оригинальный exe если его переименую в game.dat
    кстати исходник: тут
    Фон удалось запихать в тело, а вот полоски нет. Как вам реализация движения прогресс бара? Сначала делал через
    For $i = 1 to 100 Step 1
        ......
    Next
    Но проблема однопоточности и тогда в процессе движения не работала кнопка закрытия окна, так как цикл там вертелся. Придумал на таймерах. Можеть есть ещё лучше?

    Всего записей: 1562 | Зарегистр. 01-05-2006 | Отправлено: 17:22 10-03-2009 | Исправлено: ynbIpb, 17:40 10-03-2009
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    undefined
    Цитата:
    и нармально ли будет запускаться оригинальный exe если его переименую в game.dat

    если не будешь его запускать как exe или распаковывать как dat - то может и прокатит )))
     
    Добавлено:
    либо, перед запуском dat переименовать его в exe - если файлы не на cdrom,
    если же на cdrom можно кинуть его в temp папку, но после он врядтли найдет источник до cdrom и нужные ему файлы...
    а вот если это dat твой - то его можно запускать с нужными cmd параметрами...
     
    Добавлено:

    Цитата:
    Придумал на таймерах.

    имхо, вполне классно

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 19:47 10-03-2009
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    я имел ввиду запускать игру своим скриптом типа так: Run(@ScriptDir & "\game.dat") (как ни странно но запускается он как нормальный EXE'шник)
     
    попросил афтара UDF чтоб показал как запихать картинки в тело с использованием его же UDF'ки BinaryImage.au3. Дал пару функци, я всю голову сломал. куда их прикрутить...

    Всего записей: 1562 | Зарегистр. 01-05-2006 | Отправлено: 20:26 10-03-2009 | Исправлено: ynbIpb, 20:29 10-03-2009
    ZeeX

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

    Всего записей: 15 | Зарегистр. 14-12-2007 | Отправлено: 20:54 10-03-2009 | Исправлено: ZeeX, 21:37 10-03-2009
    vicbox777



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ynbIpb 19:26 10-03-2009
    Цитата:
    попросил афтара UDF чтоб показал как запихать картинки в тело с использованием его же UDF'ки BinaryImage.au3. Дал пару функци, я всю голову сломал. куда их прикрутить...

    Я вот юзаю библиотеку resources.au3. С ее помощью можно и рисунки, и музыку, и другое запихнуть, но нужно  ResHacker и AutoIt3Wrapper.
    http://www.autoitscript.com/forum/index.php?showtopic=51103&hl=exe%20data&st=0

    Всего записей: 162 | Зарегистр. 17-06-2008 | Отправлено: 22:37 10-03-2009 | Исправлено: vicbox777, 22:43 10-03-2009
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    я тоже разнюхиваю как оно работает.
    но вот та функция довольно удобна и никаких сторонних прог.

    Всего записей: 1562 | Зарегистр. 01-05-2006 | Отправлено: 09:14 11-03-2009
    sproxy



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

    Цитата:
    resources.au3
    - во, во, - самое то )
    в ней то же без сторонних прог, только при компеляции нежен ResHacker, но думаю он и в той же udf был нужен, если сама картинка загонялась в файл и потом сразу же из него и бралась без temp файлов.
     
    Добавлено:

    Код:
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Run_After=ResHacker.exe -add %out%, %out%, logo.jpg, rcdata, LOGO, 0
    #AutoIt3Wrapper_Run_After=upx.exe --best --compress-resources=0 "%out%"
    #EndRegion
    ;**** Directives created by AutoIt3Wrapper_GUI ****
     
    #region: - Include
        #include <GUIConstantsEx.au3>
        #include <resources.au3>
        #include <WindowsConstants.au3>
    #endregion
     
    #region: - Option

        Opt('GUIOnEventMode',       1)
        Opt('MustDeclareVars',      1)
        Opt('TrayIconDebug',        1)
        Opt('TrayIconHide',         0)
    #endregion
     
    #region: - Global

        Global  $hWinMain, $hPicLogo
    #endregion
     
    #region: GUI

        $hWinMain = GUICreate('Test', 400, 400, -1, -1)
            GUISetOnEvent($GUI_EVENT_CLOSE,     '_Pro_Exit')
     
        GUICtrlCreateButton('Exit', 200, 200, 150, 25)
            GUICtrlSetOnEvent(-1, '_Pro_Exit')
     
        $hPicLogo = GuiCtrlCreatePic('', 5, 5, 128, 128, -1, $GUI_WS_EX_PARENTDRAG)
        _ResourceSetImageToCtrl($hPicLogo, 'LOGO')
    #endregion
     
    #region: - После создания всех GUI

        GUISetState(@SW_SHOW, $hWinMain)
    #endregion
     
    #region: - Sleep, Exit

    While 1
        Sleep(10)
    WEnd
     
    Func
    _Pro_Exit()
        Exit
    EndFunc

    #endregion

     
    при кампиляции, рядом со скриптом нужны файлы:
    logo.jpg
    ResHacker.exe
     
    а в папке include:
    resources.au3
     
    + очень важная строка:
    #AutoIt3Wrapper_UseUpx=n
     
    исходник с файлами

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 14:16 11-03-2009 | Исправлено: sproxy, 14:22 11-03-2009
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    да этот способ тоже хорош, но есть одно НО!
    В UDF с прогресс баром картинки прогассбара нельзя поставить командой: _ResourceSetImageToCtrl так как это не стандартный контрол автоита. И врде как нельзя на бутоны вешать картинку.
    а у той UDF BinaryImage.au3 принцип немного другой. сначала помещается в текст скрипта картинка в бинарном виде, а потом подгружается в память.

    Всего записей: 1562 | Зарегистр. 01-05-2006 | Отправлено: 19:59 11-03-2009 | Исправлено: ynbIpb, 20:04 11-03-2009
    sproxy



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

    Цитата:
     но есть одно НО!
    эт верно..

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 20:19 11-03-2009
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Может кто поможет разрулить?
    сама UDF вот: SetImageBinaryToCtrl, а вот что он мне дал на прозьбу прикрутить картинки к телу используя его UDF: You should use sth. like this
    Но я нифига не понял и афтар молчит.
    з.ы.
    Пока застрял на картинках подумал и накидал механизм проверки диска:


    Код:
    $ALLCD = DriveGetDrive( "CDROM" )
    For $i = 1 to $ALLCD[0]
            $Status = DriveStatus ($ALLCD[$i]&"\" )
            $Lable = DriveGetLabel ( $ALLCD[$i]&"\" )
            If $Status = "READY" Then
                If
    $Lable = "ASSASSINS_CREED" Then
                _RunGame()
                EndIf
            EndIf
    Next

    MsgBox(0,"Проверка диска", "Диск не найден")
    Exit
     
    Func
    _RunGame()
    MsgBox(0,"Проверка диска", "Диск опознан успешно "&$Lable)
    Exit
    EndFunc


    нормально?

    Всего записей: 1562 | Зарегистр. 01-05-2006 | Отправлено: 20:41 11-03-2009 | Исправлено: ynbIpb, 21:50 11-03-2009
    vicbox777



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ynbIpb 19:41 11-03-2009
    Цитата:
    а вот что он мне дал на прозьбу прикрутить картинки к телу используя его UDF

    Если я правильно понял, 1 функция в Совете нужна для второй, а вторую можно использовать так:
    Код:
    $Binary= _ResourceGet("PROGRESS1",10)
    $IMG1=
    _LoadImageFromBinary($Binary)
    Но прокрутиллся весь вечер, и ноль...
    Но, если ничего не выйдет, то так как в ресурсы можна запихнуть картинки свободно, то просто во время запуска, останется только извлеч их в папку TEMP с помощью функции  _ResourceSaveToFile, и от туда бес проблем вызвать...

    Всего записей: 162 | Зарегистр. 17-06-2008 | Отправлено: 00:23 12-03-2009 | Исправлено: vicbox777, 01:15 12-03-2009
    AvP24

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Люди подскажите пожайлуста, как сделать такую вещь!  
    Надо в активном окне найти определенную букву, предположим "Л" через PixelSearch!
    Предположим буква белого цвета на черном фоне!  
    Я думал сделать так: ищем белый пиксель, когда найден переходим на один пиксель вправо, если он черного цвета, то идем далее! Дальше в верх на один пексель. если он белый то... и тд, в конце если все верно нажать на первый пиксель! Если одно условее не верно искать другой пиксель, чтоб все условия были верными!
    Может это глупо и есть другой способ, просто я в этом деле мало понимаю! Но очень надо!

    Всего записей: 9 | Зарегистр. 12-03-2009 | Отправлено: 19:17 12-03-2009
    vicbox777



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AvP24 18:17 12-03-2009
    Цитата:
     в конце если все верно нажать на первый пиксель

    Если можна нажать, значит это не рисунок какой то, а Контрол или ссылка, то можно другими методами... знать бы что оно из себя представляет...

    Всего записей: 162 | Зарегистр. 17-06-2008 | Отправлено: 20:15 12-03-2009
    AvP24

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

    Цитата:
    Если можна нажать, значит это не рисунок

     
    Можно считать что рисунок! нажатие будет происходить не на букву, а на то что под ней!
    А то что под ней постоянно меняет свой цвет и координаты! единственное что остается не изменным это буква(слово)!

    Всего записей: 9 | Зарегистр. 12-03-2009 | Отправлено: 20:39 12-03-2009 | Исправлено: AvP24, 21:30 12-03-2009
    sproxy



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

    Цитата:
    А то что под ней постоянно меняет свой цвет и координаты!

    так это вообще кнопка или нет? если кнопка - то без разницы какие у нее координаты )))
     
    AvP24 20:39 12-03-2009
    Цитата:
    Можно считать что рисунок! нажатие будет происходить не на букву, а на то что под ней!  
     А то что под ней постоянно меняет свой цвет и координаты! единственное что остается не изменным это буква(слово)!

    что то не понял, если нажимая на рисунок - происходит нажатие на то, что под ней, - то логично предположить,
    что то - что под рисунком всегда именно под ним и находится.....верно?
    если же рисунок, и то, что обычно под ним могут находится в разных местах - то думаю, учпешно можно жать
    как и на рисунок - так и на то, что бывает под рисункот - друг от друга по отдельности )))
     
    19:17 12-03-2009
    Цитата:
    Я думал сделать так: ищем белый пиксель, когда найден переходим на один пиксель вправо, если он черного цвета, то идем далее! Дальше в верх на один пексель. если он белый то... и тд, в конце если все верно нажать на первый пиксель! Если одно условее не верно искать другой пиксель, чтоб все условия были верными!

    очень даже правильное решение, если использовать только PixelGetColor и  PixelSearch.
     
    п.с. - как понимаю это не программа? а где то на видео/flash/или игра.....
     
     
     
    Добавлено:
     
    а обязательно искать именно отдельную букву? может хватит найти только один определенный пиксел?

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 21:21 12-03-2009 | Исправлено: sproxy, 21:22 12-03-2009
    AvP24

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Да это игра! Конкретнее: на экране появляется предмет опредленной формы, сверху предмета его название, когда наводишь мышку на предмет он немного изменяет цвет, зависит от времени(день, ночь)! Поэтому не получается найти предмет по одному пикселю, и сложно найти такой пиксель которого бы небыло за пределами этого предмета!
     
    Поиск этого предмета по ID  для меня не представляется возможным, поэтому единственный выход, который я нашел, это найти определенную букву по середине этого предмета и нажать на нее!
     
    Если ставить точное значение поиска пикселя, то точного соответствия белого и черного можно будет найти только в тексте!
     
    Этот предмет появляется в разных координатах, но надпись всегда точно над ним!

    Всего записей: 9 | Зарегистр. 12-03-2009 | Отправлено: 21:50 12-03-2009 | Исправлено: AvP24, 21:57 12-03-2009
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    да это скорее всего игра. и там нет кнопок.
    ----------
    опередил.))

    Всего записей: 1562 | Зарегистр. 01-05-2006 | Отправлено: 21:50 12-03-2009 | Исправлено: ynbIpb, 21:51 12-03-2009
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AvP24
    и как часто появляется предмет на экране?
    хм....думаю переберать весь экран на поиск этого объекта
    будет не очень быстрый....к тому же запускатся обработка же будет часто....
    думаю именно такое и в таком виде использование PixelGetColor и  PixelSearch будет затруднительно/не оправданно...
     
    Добавлено:
    кстати....а слово-то (буква) всегда имеет одну и ту же позицию?

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 22:08 12-03-2009
    Открыть новую тему    

    Страницы: 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.Board
    © Ru.Board 2000-2017

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru