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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 | Цитировать | Сообщить модератору
    SmallGoD 04:08 15-04-2009
    Цитата:
    Можно как нибудь назначить событие на потерю фокуса окном.  
     Желательно через GUIRegisterMsg

     
    Подробнее...

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 05:10 15-04-2009 | Исправлено: sproxy, 05:11 15-04-2009
    rizoVRN



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    необходимо при запуске скрипта удалять определенную ветку реестра, но от имени admin (админская локальная учетная запись). Как сделать?
    RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\XXX") делает это от имени текущего пользователя...у которого на сии манипуляции нету прав...

    Всего записей: 12 | Зарегистр. 24-03-2009 | Отправлено: 10:13 15-04-2009 | Исправлено: rizoVRN, 10:16 15-04-2009
    monsoon



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

    Всего записей: 1255 | Зарегистр. 30-01-2003 | Отправлено: 11:47 15-04-2009
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    monsoon
    Немного да, вот список того что поддерживает (там есть плей, пауза, управление браузером и т.д.)
    и еще вот тут посмотреть:
    #Include <Misc.au3>
    _IsPressed($sHexKey[, $vDLL = 'user32.dll'])
     
    Добавлено:
    rizoVRN
    #RequireAdmin
    + программу запускать так: http://technet.microsoft.com/ru-ru/library/cc781763.aspx
     

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 12:22 15-04-2009
    Loopback



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

    Цитата:
    необходимо при запуске скрипта удалять определенную ветку реестра, но от имени admin (админская локальная учетная запись). Как сделать?

    Вот, вспомнил про один скрипт на оффоруме как раз для этих целей, но к сожалению, не знаю, насколько он работоспособен.
     
    http://www.autoitscript.com/forum/index.php?showtopic=14710

    Всего записей: 174 | Зарегистр. 08-03-2002 | Отправлено: 13:37 15-04-2009 | Исправлено: Loopback, 13:38 15-04-2009
    praporschik



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Меня интересует один вопросик по поводу функции вызова DLL библиотеки. В чем разница между тем что тип возвращаемого значения функции будет int ( 32-ти битовое целое) или, например, short (16-ти битовое целое)? И как понять параметр str - строка?  

    Всего записей: 25 | Зарегистр. 05-03-2009 | Отправлено: 18:18 15-04-2009
    Tnav

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    подскажите, как узнать дату изменения файла?
    хотя в справке пишется что FileGetTime это "Получить информацию о дате и времени последней модификации указанного файла. ", на самом деле функция возвращает дату создания.
     
    upd: всё, уже разобрался, методом тыка )
    FileGetTime("filename", 0) а дальше по справке )

    Всего записей: 472 | Зарегистр. 01-08-2006 | Отправлено: 19:06 15-04-2009 | Исправлено: Tnav, 19:16 15-04-2009
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    praporschik 18:18 15-04-2009
    Цитата:
    Меня интересует один вопросик по поводу функции вызова DLL библиотеки. В чем разница между тем что тип возвращаемого значения функции будет int ( 32-ти битовое целое) или, например, short (16-ти битовое целое)? И как понять параметр str - строка?  

     
    int    Целое число: от – 2147483648 до + 2147483647
    short    Короткое целое число:     от -32768 до +32767
    str    строка есть строка ))
     
    проще говоря, это необходимо для понимания
    а кокм виде будет результат и как с ним работать.
    Если это str - то явно не число 25 ))....+ под разные типы разное
    колличество памяти выделяется...но думаю в AutoIt
    над этим не особо стоит задумываться...
     
    Добавлено:
    Tnav 19:06 15-04-2009
    Цитата:
    подскажите, как узнать дату изменения файла?  
     хотя в справке пишется что FileGetTime это "Получить информацию о дате и времени последней модификации указанного файла. ", на самом деле функция возвращает дату создания.

    а вот так:
    Код:
    MsgBox(0, 'File info', FileGetTime(@Windowsdir & '\win.ini', 3, 1))

     
    почаще сверяйтесь с английской справкой ! )
    русская написанна на немного устаревшую версию ...

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 19:08 15-04-2009 | Исправлено: sproxy, 19:11 15-04-2009
    wellic

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста.
    Как организовать правильно приложение с вот такой схемой работы.
     
    1) приложение загружается в tray
    2) каждый пункт меню это функция, которая порождает самостоятельное окно с помощью GuiCreate, которые в себе содержат разные контролы и т.д.
     
    Вообще цель.
    Делаю себе инструмент для работы, который висит в трее, в котором пункты меню это функции для работы. Программу хочется наращивать как одно целое, а не набор утилит. Пока используется одно окно, то все хорошо. Но как только есть неколько окошек, то независимо от режима OnEvent не получается организовать мультиоконность.
     
    Т.е. вообще, как сделать, чтобы на экране было несколько элементов созданных GuiCreate. И как разбирать сообщения, которые поступают от всех созданных form.
     
    Сейчас я пытаюсь сделать некоторый обработчик,  который ловит все сообщения, а потом вызвает нужные процедуры обработки. Но что-то пока не получается как хочется + много глобальных переменных.  
     
    Ткните носом где почитать про построение таких приложений в AutoIT или какие UDF помогают это делать.
     

    Всего записей: 339 | Зарегистр. 06-05-2002 | Отправлено: 23:19 15-04-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    deadbead 21:15 14-04-2009
    Цитата:
     Послать в неактивное окно нажатие клавиши

    Можно попробовать через ControlSend("[CLASS:D3D Window]", "", "", "клавишы"), т.е не указывая контролы. Ну или (если условия это позволяют) активировать временно окно и послать что нужно.
     

    Цитата:
    есть готовое приложение выполняющее это действие без проблем (RFUtilities)

    Возможно там используется прямой доступ к памяти (к аксселератору ключей), вызовом типа SendMessage?
     
    Есть ещё GDI UDFs, может там найдётся что нужно.
     
    Добавлено:
    wellic 23:19 15-04-2009
    Цитата:
     пока не получается как хочется

    Выложите то что есть, будем разбирать
     

    Цитата:
    где почитать

    В справке, а также методом проб и ошибок
     
    Добавлено:
    По идее, чтобы подобная задача нормально работала, нужно прятать иконку трея при отображении окна (вызове функции). Я бы сделал так к примеру.

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 00:23 16-04-2009 | Исправлено: ViSiToR, 01:06 16-04-2009
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wellic 23:19 15-04-2009
    Цитата:
    Делаю себе инструмент для работы, который висит в трее, в котором пункты меню это функции для работы. Программу хочется наращивать как одно целое, а не набор утилит. Пока используется одно окно, то все хорошо. Но как только есть неколько окошек, то независимо от режима OnEvent не получается организовать мультиоконность.  
      
     Т.е. вообще, как сделать, чтобы на экране было несколько элементов созданных GuiCreate. И как разбирать сообщения, которые поступают от всех созданных form.

     
    Пример:
    Подробнее...
     
    А можно, что бы кнопочки с текстом MsgBox в каждом окне вызывали именно для этого окна предназначенные функции.
    Подробнее...
     

    Цитата:
    Ткните носом где почитать про построение таких приложений в AutoIT или какие UDF помогают это делать.
    Помойму в этом случае, из сторонних UDF для окон, ни чего не жуно, не считая красивого Tray или Top Menu (но они и не окна же  ).
     
    [more][/more]

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 01:49 16-04-2009 | Исправлено: sproxy, 01:50 16-04-2009
    wellic

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

    Цитата:
    По идее, чтобы подобная задача нормально работала, нужно прятать иконку трея при отображении окна (вызове функции). Я бы сделал так к примеру.

     
    Спасибо, за пример. Очень похоже на то, что нужно мне.
    Только как его модифицировать, чтобы все три окна были на екране И можно было в каждом из них работать. Так как одновременно может работать только один цикл обрабатывающий guigetmsg.
     
     
    А мне нужно чтобы написал функцию выполняющую какую-то функциональность, вызвал ее она висит себе на екране. Например, панелька на которой кнопки, которые при нажатии посылают набор символов в текущее окно.
     
    Или вторая панелька, в которой запуск любимых утилит. написанных мной. И т.д.
     

    Всего записей: 339 | Зарегистр. 06-05-2002 | Отправлено: 01:55 16-04-2009
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wellic
    а сть смысл каждый раз прятать иконку в трее?
    ...хм, помойму наоборот - удобней когда оно там всегда,
    и в любой момент можно откыть окно №1, №2 и т.д. или несколько....
     
    Добавлено:

    Цитата:
    Только как его модифицировать, чтобы все три окна были на екране  И можно было в каждом из них работать. Так как одновременно может работать только один цикл обрабатывающий guigetmsg.

    Смотрите пример выше.

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 02:01 16-04-2009
    wellic

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

     

    Цитата:
    Пример:  
    Подробнее...  
     
    А можно, что бы кнопочки с текстом MsgBox в каждом окне вызывали именно для этого окна предназначенные функции.  
    Подробнее...  

     
    Практически то, что хотелось.
    Вопрос: а как сделать такое-же, но в режиме
    Opt('GUIOnEventMode',   0)  
    И с минимумом глобальных переменных.
     
     
    Новый вопрос.
    можно ли как то при создании своих функций и переменных в разных файлах екранировать их видимость.
     
    Например.
    file1.au3
    #includeonce
    Local a
    func f()
    endfunc
     
    file2.au3
    #includeonce
    Local a
    func g()
    endfunc
     
    main.au3
    #include "file1.au3"
    #include "file2.au3"
    f()
    g()
     
    При компиляции возникнет ошибка, что в файле main дважды объявлена переменная а

    Всего записей: 339 | Зарегистр. 06-05-2002 | Отправлено: 02:16 16-04-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wellic 01:55 16-04-2009
    Цитата:
    одновременно может работать только один цикл обрабатывающий guigetmsg

    Тогда как написал sproxy, через OnEvent, вот так. Но следует учитывать, что при открытом Msgbox и подобной блокирующей функции, скрипт не выполняет никаких событии, но ставит их в очередь (в буфер).


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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 02:31 16-04-2009
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wellic 02:16 16-04-2009
    Цитата:
    Например.  
     file1.au3  
     #includeonce  
     Local a  
     func f()  
     endfunc  
      
     file2.au3  
     #includeonce  
     Local a  
     func g()  
     endfunc  
      
     main.au3  
     #include "file1.au3"  
     #include "file2.au3"  
     f()  
     g()

     
    В этом варианте, будет ошибка, т.к. для файла main.au3 уже будет объявленная локальная переменная "а" в файле file2.au3.
    Тогда "экранируемые переменные" необходимо локально объявлять в самой функции:
     

    Цитата:
     #includeonce  
     func f()
        Local a
     endfunc  
      
     file2.au3  
     #includeonce  
     func g()
       Local a
     endfunc  
      
     main.au3  
     #include "file1.au3"  
     #include "file2.au3"  
     f()  
     g()

     
    Не бойтесь глобальных переменных - в AutoIt, разумное их использование, очень хорошо работает +  удобно.
    К примеру, ничего страшного, если у переменные, которые содержат указатель (хэндл) на GUI окно
    из функции "f" и функции "g" будут глобальными, в таком случае меньше создовать временных функций.
    Хотя можно обойтись и без них.
     
    Тут главное синтаксис именования переменных для себя решить, пример:
     
    Главное Gui окно: $hMainWin
    Отладочное Gui окно: $hDebugWin
    и т.д. по аналогии...
     
    + очень полезное ифно по именованию переменных (применятся почти во всех UDF).
     
    Добавлено:
    ViSiToR
    пора контору открывать по написанию мини пиложений за деньги, на AutoIt  

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 02:40 16-04-2009 | Исправлено: sproxy, 02:41 16-04-2009
    wellic

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо за
    Цитата:
    + очень полезное ифно по именованию переменных (применятся почти во всех UDF).  

     
    Вопрос задаю по переменным, т.к. программы у меня как правило модульные и частенько пересекаются имена переменных. Я обычно добавляю к имени имя модуля.
    но тогда переменные немного монстровато выглядят.  
     
    Кроме того у меня много переменных, которые как говорят в других языках программирования - переменные модуля. И мне не хотелось бы их светить по всей программе.  
     
    Сейчас у меня одна из программок  около 500к исходников, и вспоминать какие переменные раньше назывались неудобно. Конечно стоит смириться что AutoIT это скриптовый язык, ане классический, но модет я что-то в хелпе проглядел.
     
    Добавлено:
    ViSiToR
    04:31 16-04-2009
    Цитата:
    wellic 01:55 16-04-2009 [?]  
    Цитата:одновременно может работать только один цикл обрабатывающий guigetmsg  
     
    Тогда как написал sproxy, через OnEvent, вот так [?]. Но следует учитывать, что при открытом Msgbox и подобной блокирующей функции, скрипт не выполняет никаких событии, но ставит их в очередь (в буфер).  
     
     

     
    Насчет блокировки понятно. А вот на счет OnEvent - у меня уже весь каркас написан с использовнием MessgeLoop.
     
    Я понимаю, что мой код можно подправить в режим OnEvent. Но хотелось бы в учебных целях понять, как такое делать в режиме MessageLoop.
     
    Следующая проблема это написание обработчика, когда контролов нсколько десятков а то и сотни.  
    Т.е. вариант функции уже не катит

    Код:
    Func _GUI_Events()  
        Switch @GUI_CtrlId  
            Case $GUI_EVENT_CLOSE  
                GUISetState(@SW_HIDE, @GUI_WinHandle)  
            Case $nGUI_1_Button  
                ;MsgBox(64, "Инфо", "Вы нажали Кнопку.", 0, $hGUI_1)  
     
                ToolTip("Вы нажали Кнопку.", -1, -1, "Инфо", 1)  
            Case $nGUI_2_Checkbox  
                Local $sCheckbox_Data = "Вы сняли отметку с галочки."  
                If GUICtrlRead($nGUI_2_Checkbox) = $GUI_CHECKED Then $sCheckbox_Data = "Вы поставили отметку на галочке."  
     
                ;MsgBox(64, "Инфо", $sCheckbox_Data, 0, $hGUI_2)  
                ToolTip($sCheckbox_Data, -1, -1, "Инфо", 1)  
            Case $nGUI_3_Button  
                ;MsgBox(64, "Инфо", "Вы ввели: " & GUICtrlRead($nGUI_3_Input), 0, $hGUI_3)  
                ToolTip("Вы ввели: " & GUICtrlRead($nGUI_3_Input), -1, -1, "Инфо", 1)  
        EndSwitch  
    EndFunc

    Всего записей: 339 | Зарегистр. 06-05-2002 | Отправлено: 03:12 16-04-2009 | Исправлено: wellic, 03:20 16-04-2009
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wellic 03:12 16-04-2009
    Цитата:
    из программок  около 500к исходников

    Имхо, для готово решения, и серьезной (из уровня мини утилит) - это средний размер (если там нет ни одной вставленной иконки, то это не маленькая прожка, наверно).
     

    Цитата:
    Конечно стоит смириться что AutoIT это скриптовый язык, ане классический

    А почему "скриптовый" ? AutoIt код компилируется в самостоятельный exe файл, а не интерпритируется (пример: php, javaScript, BAT).
    AutoIt - это хороший процедурный язык программирования. Некое продолжение BAT скриптов, имхо. И плюс к тому, что умеют BAT файлы,
    AutoIt умеет работать с мышкой, более серьезней с клавиатурой, окнами, dll, WinApi. В аналогии с BAT - как его старший брат ))
     
    Так в чем отличе от классического? И какой язык является классическим?
    AutoIt не ООП язык (с объектами и классами), он больше напоминает (по принципу) Бейсик, Паскаль, Си
    - т.е. старые добрые языки (которые и сейчас востребованны) где выполнение программы происходит
    пошагово (процедурные языки программирования), а не по реакции на событие (http://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование).
     
     
    Добавлено:

    Цитата:
    Следующая проблема это написание обработчика, когда контролов нсколько десятков а то и сотни.  
    Т.е. вариант функции уже не катит

    Катит, даже при большом колличестве управляющих элементов. Почему нет?
    Даже, имхо, удобней будет, так будет чуть меньше написанно кода (Func...EndFunc),
    а значит, скорее всего, и работать с кодом будет легче.
     

    Цитата:
    А вот на счет OnEvent - у меня уже весь каркас написан с использовнием MessgeLoop.

    Подробнее...
     
    для примера ни чего не удалял, просто закомментировал.
     
    Имхо, работать с OnEvent удобней.
     
    Добавлено:
     
    wellic 03:12 16-04-2009
    Цитата:
    Следующая проблема это написание обработчика, когда контролов нсколько десятков а то и сотни.  
     Т.е. вариант функции уже не катит

     
    если 10-ки = то катит, если 100-и, то уж лучше сразу вызывать нужную функцию.
    + можно разбить 100 функйи на свои блоки:
    _GUI_Events_Main()
    _GUI_Events_Lan()
    _GUI_Events_Misc()
    и т.д. ....
     
    ....хотяяя...тут стоит протестить. Для программы проверить 99 условий, если они банальные, думаю, будет парочка мсек.....

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



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sproxy 02:40 16-04-2009
    Цитата:
    пора контору открывать по написанию мини пиложений за деньги, на AutoIt

    Я изучал AutoIt от других людей, которые были готовый бесплатно давать советы и решения моим проблемам на таких форумах как этот. Они тратили своё сободное(?) время, и не взяв за это ни копейки... вот и я буду придерживаться такой политики, и другим советую

     
    03:26 16-04-2009
    Цитата:
    почему "скриптовый"

    Скриптовый скриптовый, от этого не спрятаться - Это определяет его синтаксис + значительная ограниченность. О том что он скриптовый, пишет даже сам Джон (даже в справке есть упоминания об этом).
     

    Цитата:
    работать с OnEvent удобней

    Для таких задачь да. Но имхо не всегда.

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 06:03 16-04-2009
    sproxy



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

    Цитата:
    Я изучал AutoIt от других людей, которые были готовый бесплатно давать советы и решения моим проблемам на таких форумах как этот. Они тратили своё сободное(?) время, и не взяв за это ни копейки... вот и я буду придерживаться такой политики, и другим советую  

    не-не-не, по мимо форума - тут мега Библиотека-Кладец-Сообщество-Комьюнити = Знаний !!!
    Именно этим мне и нравится AutoIt (что тут, что на озоне) - народ не лезит в душу, а банально делиться опытом....
    Тут беспорно !!! ....просто ни когда не расматривал варианта заработка написанием win приложений ))

     

    Цитата:
    Скриптовый скриптовый, от этого не спрятаться  - Это определяет его синтаксис + значительная ограниченность. О том что он скриптовый, пишет даже сам Джон (даже в справке есть упоминания об этом).

    А как называется скомпилированный файл на AutoIt? Скрипт? неее....скрипт - это интерпритируемый "сценарий" - а вот exe, это уже программа.
    Думаю, упоминание скриптовости, это из за корней AutoIt, начальная задумка где то рядом, возможно, была.....
    Ограниченность - по мойму, это не серьезный довод, байсик - то же не мега язык ))
    Просто, имхо, ни как не могу exe файл назвать скриптом - это уже программа....
     

    Цитата:
    Для таких задачь да. Но имхо не всегда.

    Само собой - все хорошо в меру, в нужном месте и в нужное время ))

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 08:40 16-04-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.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru