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

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



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sproxy 18:33 13-03-2009
    Цитата:
    и конечно же уже существующиq пример из UDF

    Который нужно было первым приводить - Оно самое надёжное.
     
    ynbIpb 19:55 13-03-2009
    Цитата:
    ;защита от запуска двух копий

    Попадётся любое окно с таким названием, и скрипт вовсе не запустится

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

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



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Drag&Drop нормально работает с файлами. А вот как быть с текстом?

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 00:38 14-03-2009
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ViSiToR 23:23 13-03-2009
    Цитата:
    Который нужно было первым приводить    - Оно самое надёжное.

    благодраю, верно подмеченно....поздно вспомнил про него ...)
     
    Добавлено:
    ViSiToR
    дасадно тут штучек нету Полезное сообщение

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите плз с помощью AutoIt делаю бэкап, и хочу отсылать себе сообщения по посчте о том что всё ок, или если есть ошибки. на smtp сервере авторизация и нестандартный порт(2025), как заставить отсылать письма на заданный сервер с нужным портом и авторизовываться при этом?

    Всего записей: 44 | Зарегистр. 21-10-2008 | Отправлено: 21:16 14-03-2009
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Castiel 21:16 14-03-2009
    Цитата:
    Подскажите плз с помощью AutoIt делаю бэкап, и хочу отсылать себе сообщения по посчте о том что всё ок, или если есть ошибки. на smtp сервере авторизация и нестандартный порт(2025), как заставить отсылать письма на заданный сервер с нужным портом и авторизовываться при этом?

    по ходу, все, что требуется, эта функция умеет..

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

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Случайно нашел http://thefoolonthehill.net/AutoIt_AutoIt_Debugger.htm
    Здесь вроде не видел.

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



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wellic 01:20 15-03-2009
    Цитата:
    Случайно нашел http://thefoolonthehill.net/AutoIt_AutoIt_Debugger.htm

    Имхо, учитывая тот факт что «OnAutoItExit» там не поддерживается, этот дебагер бесполезный. Хотя я его особо ещё не щупал...

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 02:32 15-03-2009
    wellic

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я попробывал. Терпимо, так тот который пробегал здесь неудобный, т.к. встраивает свой код. А этот роде похож на настоящий дебагер Правда я не нашел кое-каких вещей для себя. Но все же, в трудных случаях может пригодится.

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогит создать ComboBox  с  такими параметрами и функциями  
     в файле "User\Config\gfx_opengl.ini"   изменяет строчки  
     
     "off"    
     
    [Settings]
    AutoScale = True
    MSAA = 0
     
      "2x"    
     
    [Settings]
    AutoScale = False
    MSAA = 1
     
      "4x"
     
    [Settings]
    AutoScale = False
    MSAA = 2
     
      "8x"
     
    [Settings]
    AutoScale = False
    MSAA = 3
     
     
    Напишите пример пожалуйста!!

    Всего записей: 25 | Зарегистр. 24-02-2009 | Отправлено: 15:19 15-03-2009 | Исправлено: FullHD, 15:20 15-03-2009
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    FullHD 15:19 15-03-2009
    Цитата:
    Помогит создать ComboBox  с  такими параметрами и функциями  
      в файле "User\Config\gfx_opengl.ini"   изменяет строчки  

     

    Код:
    #region: - Include
        #Include <GuiComboBox.au3>
        #include <GUIConstantsEx.au3>
        #include <WindowsConstants.au3>
    #endregion
     
    #region: - Option

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

        Global  $sIniPath = @ScriptDir & '\gfx_opengl.ini'
        Global  $iCfgMSAA, $sCfgAutoScale
                _Ini_Read('iCfgMSAA')
     
        Global  $hWinMain, $hComboMSAA
    #endregion
     
    #region: - Главное окно

        $hWinMain = GUICreate('Test', 400, 400, -1, -1)
            GUISetOnEvent($GUI_EVENT_CLOSE,     '_Pro_Exit')
     
        GUICtrlCreateLabel('MSAA:', 10, 23, 45, 18)
            GUICtrlSetFont(-1, 10, 700)
        $hComboMSAA = GUICtrlCreateCombo('', 60, 20, 50, 25, $CBS_DROPDOWNLIST)
            GUICtrlSetData(-1, 'off|2x|4x|8x')
            _GUICtrlComboBox_SetCurSel(-1, $iCfgMSAA)
                GUICtrlSetOnEvent(-1, '_Write_MSAA')
    #endregion
     
    #region: - После создания всех GUI

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

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

    #endregion
    ;~ Ini
    Func _Ini_Read($sWhatRead)
        Local $Temp
        Switch $sWhatRead
            Case 'iCfgMSAA'
                $sWhatRead = IniRead ($sIniPath , 'Settings', 'MSAA', -1)
                If NOT StringIsDigit($sWhatRead) OR $sWhatRead < 0 OR $sWhatRead > 3 Then
                    $sWhatRead = 0
                    IniWrite($sIniPath, 'Settings', 'AutoScale', 'True')
                    IniWrite($sIniPath, 'Settings', 'MSAA', $sWhatRead)
                EndIf
                Assign('iCfgMSAA', $sWhatRead)
                Return $sWhatRead
        EndSwitch
    EndFunc
    Func
    _Ini_Write($sWhatSection, $sWhatWrite)
        Local $sWhatKey = StringTrimLeft($sWhatWrite, 4)
        If StringLeft($sWhatWrite, 1) == 'i' Then
            $sWhatWrite = Eval($sWhatWrite)
        Else
            $sWhatWrite = '"' & Eval($sWhatWrite) & '"'
        EndIf
        IniWrite($sIniPath, $sWhatSection, $sWhatKey, $sWhatWrite)
    EndFunc
     
    Func
    _Write_MSAA()
        $iCfgMSAA = _GUICtrlComboBox_GetCurSel($hComboMSAA)
        _Ini_Write('Settings', 'iCfgMSAA')
        If $iCfgMSAA == 0 Then
            $sCfgAutoScale = 'True'
            _Ini_Write('Settings', 'sCfgAutoScale')
        Else
            $sCfgAutoScale = 'False'
            _Ini_Write('Settings', 'sCfgAutoScale')
        EndIf
    EndFunc

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 20:36 15-03-2009 | Исправлено: sproxy, 21:00 15-03-2009
    FullHD

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

    Всего записей: 25 | Зарегистр. 24-02-2009 | Отправлено: 22:29 15-03-2009
    EVGEN1404

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток!
     
    Сделал тут себе ГУИ интерфейс в утилитке, возникла необходимость в следующем:
    реализовал обработку кнопок через Select... Case... EndSelect. На одной из кнопок "сидит" цикл FOR, необходимо чтобы при нажатии на другую кнопку цикл прерывался.
     

    Код:
    While 1
        $msg = GUIGetMsg()
        Select
            Case
    $msg = $Button_01
                $x
    = 1
                $k1 = GUICtrlRead($Combo_1)
                For $x = 1 To $k1
                    $y
    = _ExcelReadCell($oExcel, $x, 1)
                    ...

                Next
            Case
    $msg = $Button_02
                {?}
        EndSelect
    WEnd
    Exit

    Всего записей: 10 | Зарегистр. 02-03-2009 | Отправлено: 13:44 17-03-2009
    MIHMIH007



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подскажите пожалуйста я новичок в AutoIT с чего мне лучше начать?...
    Цель сделать следующий скрипт:
    Нажатие в программе на определённые кнопки и выставление нужных функций после этого повтор всей операции через определённый промежуток времени....  
    Попробовал сделать запись с помощью AutoItMacroGenerator  но что то не совсем получилось.... в каких случаях помогает AutoItMacroGenerator  ?

    Всего записей: 743 | Зарегистр. 05-12-2006 | Отправлено: 14:00 17-03-2009
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    MIHMIH007 14:00 17-03-2009
    Цитата:
    и выставление нужных функций

    функций из стороннего приложения? думаю это не получится.
    или что то другое под этим подразумевается?
     

    Цитата:
     в каких случаях помогает AutoItMacroGenerator  ?

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

    Цитата:
    Нажатие в программе на определённые кнопки и выставление нужных функций после этого повтор всей операции через определённый промежуток времени....  

    в принцыпе все это реализуемо.
     
    Добавлено:
    EVGEN1404 13:44 17-03-2009
    Цитата:
    чтобы при нажатии на другую кнопку цикл прерывался.


    Код:
    #region: - Include
        #include <GUIConstantsEx.au3>
        #include <WindowsConstants.au3>
    #endregion
     
    #region: - Option

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

        Global  $hWinMain, $hButtonStart, $hButtonStop
        Global  $iTimer
    #endregion
     
    #region: - Главное окно

        $hWinMain = GUICreate('Test', 400, 400, -1, -1)
     
        $hButtonStart = GUICtrlCreateButton('Start', 10, 20, 100, 25)
        $hButtonStop = GUICtrlCreateButton('Stop', 10+100+5, 20, 100, 25)
    #endregion
     
    #region: - После создания всех GUI

        GUISetState(@SW_SHOW, $hWinMain)
    #endregion
     
    #region: - Acion while

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
            Case
    $hButtonStart
                $iTimer
    = TimerInit()
                While 1
                    If GUIGetMsg() == $hButtonStop Then ExitLoop
                    ToolTip('Oбработка бесконечного цикла по кнопке Start: ' & Round(TimerDiff($iTimer)/1000, 3) & ' сек' & @CRLF & _
                            'Для отмены нажмите кнопку Stop', 10, 100)
                WEnd
                ToolTip('Oбработка завершенна' & @CRLF & _
                        'Время обработки: ' & Round(TimerDiff($iTimer)/1000, 3) & ' сек', 10, 100)
                AdlibEnable('_Close_Tip', 1000*5)
        EndSwitch
    WEnd
    #endregion
     
    Func _Close_Tip()
        ToolTip('')
        AdlibDisable()
    EndFunc

     
    хотя если в цыкле будет бооооольшая обработка, то тут врядтли прокатит...
    к примеру если в цикле копировать файл, тогда врядтли получится....
     
    В целом, AutoIt моно потоковый язык, с параллейно-выполняемыми задачиму тут боооольшие сложности.
     
    Добавлено:
    поэтому, что бы успешно выполнять параллейные задачи и придумали интеракуию между скриптами.
    т.е. скрипт1, например, запускает файл скрипта2, который копирует файлы.
    если в скрипте1 нажать кнопку "отмена", то он просто закроет процесс скрипта2.
    а если ни чего не жать, то по завершение копирования скрипт2 дает знать об
    этом скрипту1.
     
    примеры:
    Интеракция между несколькими скриптами
    Прямая передача из окна в окно

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 14:48 17-03-2009 | Исправлено: sproxy, 15:09 17-03-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sproxy 14:48 17-03-2009
    Цитата:
    или что то другое под этим подразумевается?

    Я думаю речь о вызове своих функции после нажатии на кнопки
     
    MIHMIH007 14:00 17-03-2009
    Цитата:
    Нажатие в программе на определённые кнопки

    См. в справке «ControlSend/ControlClick/MouseClick» и т.п.
     

    Цитата:
    выставление нужных функций

    В справке об этом всё написано.
     

    Цитата:
    повтор всей операции через определённый промежуток времени

    Опять же, в справке см. «For...Next», и «Sleep».
     

    Цитата:
     в каких случаях помогает AutoItMacroGenerator  ?

    Не в вашем , исходя из вопроса...
     

    Цитата:
    я новичок в AutoIT с чего мне лучше начать?

     
    я так понимаю что вы хотите научиться писать скрипты самому, а AutoItMacroGenerator только вас запутает, он для тех кто хочет уже готовый результат, чтобы ничего самому не делать (хотя имхо так не бывает).

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

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



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    MIHMIH007 14:00 17-03-2009
    Цитата:
    Подскажите пожалуйста я новичок в AutoIT с чего мне лучше начать?...

    Если есть общее представление/знакомство с самыми азами программирования,
    думаю будет понятно - мини пример:
     

    Код:
    #region: - Option
    ;~  Опция AutoIt, устанавливает(если 1) необходимость объявлять все переменные перед использованием.
    ;~  Имхо, так меньше проблем и мусора:

        Opt('MustDeclareVars',      1)
    ;~  Опция AutoIt, скрывает(если 1) иконку скрипта в tray области:
        Opt('TrayIconHide',         0)
    ;~  Опция AutoIt, устанавливает(если 1) настройку при которой иконка скрипта в tray области
    ;~  показывает текущую выполняемую строчку кода:

        Opt('TrayIconDebug',        1)
    #endregion
     
    #region: - Global

    ;~  Объявление глобальных переменных, с этими переменными можно сразу работать в любых
    ;~  функциях - т.к. они глобальные, значит в функциях эти переменные будут иметь
    ;~  те же значения, котрые были им присвоены до использования в функции:

        Global  $iCalcPid, $iCalcHwd, $aCalcPos
        Global  $sButtonClass = '[CLASS:Button; INSTANCE:5]'
        Global  $sText
    #endregion
     
    ;~ Запуск калькулятора, $iCalcPid будет содержать PID(индетификатор этого процесса)
    ;~ запущенного процесса:

    $iCalcPid = Run('calc.exe')
    ;~ Ожидание запуска Калькулятора, именно того, который был заущен коммандой выше:
    While 1
    ;~  Присвоение переменной $iCalcHwd handle(индивидуального указателя этого окна)
    ;~  запущенного калькулятора - функция _ProcessGetWindow возвращает Handle окна
    ;~  по PID процесса:

        $iCalcHwd = _ProcessGetWindow($iCalcPid, 1)
    ;~  Если переменная содержит значение типа указателя на окно, Handle, то выйти
    ;~  из бесконечного цикла:

        If IsHWnd($iCalcHwd) Then ExitLoop
    WEnd

     
    ;~ Необходимо выяснить в каком режиме работает Калькулятор: Обычный или Инжинерный.
    ;~ Для этого банально сравниваем значение ширины окна калькулятора и если значение
    ;~ больше ширины Калькулятора в обычном режиме, значит Калькулятор в инжинерном
    ;~ режиме.Так как далее необходимо нажать на кнопку цифры 7 - необходимо
    ;~ знать Advanced Class кнопки, в разных режимах у кнопки цифры 7 он разный.
    ;~ Для обычного режима Advanced Class [CLASS:Button; INSTANCE:5],
    ;~ а для обычного [CLASS:Button; INSTANCE:42].
    ;~ Соответсвенно выяснив в каком режиме работает Калькулятор,
    ;~ то нужный Advanced Class кнопки цыфры 7 присваивается переменной $sButtonClass,
    ;~ которая будет использоваться дальше.
    ;~ Получение размера окна Калькулятора:

    $aCalcPos = WinGetPos($iCalcHwd)
    ;~ Проверка режима калькулятора:
    If $aCalcPos[2] > 260 Then $sButtonClass = '[CLASS:Button; INSTANCE:42]'
     
    ;~ Клик на кнопку цифры 7.
    ;~ $iCalcHwd - это указатель на окно Калькулятора который был запущен выше коммандой Run.
    ;~ $sButtonClass - Advanced Class(своего рода указатель именно на нужную кнопку в окне) кнопки
    ;~ цыфры 7

    ControlClick($iCalcHwd, '', $sButtonClass)
     
    ;~ остановить выполнение скрипта на 5 мили секунд, на всякий случай, вдруг доолга будет нажиматься
    ;~ цифра 7 ))

    Sleep(5)
     
    ;~ Получение введеных цифр, поле введенных цифр имеет Advanced Class [CLASS:Edit; INSTANCE:1]:
    $sText = ControlGetText($iCalcHwd, '', '[CLASS:Edit; INSTANCE:1]')
    ;~ Удаление последних 2 символов из результата считывания введенных цифр, так Калькулятор
    ;~ отображает введеные цифры, за тем запятую, затем один пробел. Вот запятая и пробел
    ;~ будут удаленны:

    $sText = StringTrimRight($sText, 2)
     
    ;~ Вывод сообщения с результатами получения введеных цыфр:
    MsgBox(64, 'Результат', 'Введенные цифры: ' & $sText)
     
    ;~ Вызов функции выхода из скрипта. Если же её нет, то скрипт и так
    ;~ закроется сам далее, так как больше нет програмного кода к выполнению.
    ;~ Но это функция нужна, так как она закрывает ранее открытый Калькулятор,
    ;~ именно тот который был открыт, другие не тронет. И уже потом
    ;~ закрывает скрипт:

    _Pro_Exit()
     
    ;~ Функция выхода из скрипта:
    Func _Pro_Exit()
        ProcessClose($iCalcPid)
        Exit
    EndFunc

     
    ;~ Функция получения Handle окна по PID его процесса:
    Func _ProcessGetWindow($iPID, $iRet=-1)
        Local $aWinList = WinList()
        Local $aRet[2]
     
        If IsString($iPID) Then $iPID = ProcessExists($iPID)
     
        For $i = 1 To UBound($aWinList)-1
            If WinGetProcess($aWinList[$i][1]) = $iPID Then
                $aRet[0] = $aWinList[$i][0] ;Title
                $aRet[1] = $aWinList[$i][1] ;WinHandle
     
                If $iRet = 0 Then Return $aRet[0]
                If $iRet = 1 Then Return $aRet[1]
     
                Return $aRet
            EndIf
        Next
     
        Return
    SetError(1, 0, $aRet)
    EndFunc

     
    Advanced Class и т.д. данные об элементе окна можно узнать с помощью утилиты: AutoIt v3 Windows Info.
    находится в папке установки AutoIt\Au3Info.exe
     
    В целом, начинайте писать то, что вам необходимо.
    Что не знаете - спрашивай тут, многие помогут.
    Так, со временем, можно изучить этот язык.
    Тут все просто, только необходимо немного разобраться)
     
    И конечно же, скачайте:
    1 Последную версию AutoIt
    2 Русскую справку(примерно по 10% комманд русская справка немного устарела,
    но не беда, для начала будет понятней по русской, + можно сравнимать с английской)
    3 Редактор SciTe
     
    +, ViSiToR сказал все очень верно!

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помагите пожауста,как можна создать собственную службу (сервиса windows) ,чтобы запускал test.au3 или test.exe.
     
    Добавлено:
    Вариант  
     
    "sc create "TEST" binpath= c:\test.exe type= own start= auto displayname= "Служба TEST" error= ignore"
     
    или
     
    "sc create "TEST" binpath= c:\test.au3 type= own start= auto displayname= "Служба TEST" error= ignore"
     
    не праходит
     
    Добавлено:
    Чтобы test.au3 или test.exe запускался как служба windows

    Всего записей: 14 | Зарегистр. 07-02-2009 | Отправлено: 20:38 17-03-2009 | Исправлено: buduc, 20:47 17-03-2009
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    buduc 20:38 17-03-2009
    Цитата:
    Помагите пожауста,как можна создать собственную службу (сервиса windows) ,чтобы запускал test.au3 или test.exe.

    тут можно поподробней узнать
     
    Добавлено:
     
    + мини обсуждение тут

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    sproxy
     
    Можети помочь как создать собственную службу (сервиса windows) ,чтобы запускал test.au3 или test.exe.
     
    Чтобы test.au3 или test.exe запускался как служба windows
     
    Вариант  
     
    "sc create "TEST" binpath= c:\test.exe type= own start= auto displayname= "Служба TEST" error= ignore"  
     
    или  
     
    "sc create "TEST" binpath= c:\test.au3 type= own start= auto displayname= "Служба TEST" error= ignore"  
     
    не праходит ,не запускается test.au3 или test.exe  
     
    Добавлено:
    sproxy
    СПАСИБО

    Всего записей: 14 | Зарегистр. 07-02-2009 | Отправлено: 21:58 17-03-2009 | Исправлено: buduc, 22:26 17-03-2009
    Leagnus

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Опубликовал на оф.форуме свою базовую библиотеку для управления Open Office Calc'ом.

    Всего записей: 148 | Зарегистр. 12-09-2008 | Отправлено: 00:05 18-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.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru