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

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

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

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

   

AddXL

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

AutoIt3

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

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

 
Помощь по AutoIT:
  • Справку на русском (и не только) вы всегда(?) сможете найти тут
  • Справочник по командам rundll32
  • Русский справочник по API-функциям
  • Помощь по Регулярным выражениям
  • AutoIt v3: Your Quick Guide (652 КБ) - Ваш быстрый гид в мир AutoIt-а (книга в формате pdf)
     
    Инструметы для 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:
  • Коллекция AutoIt скриптов от Sanja Alone
  • Коллекция скриптов на http://msfn.org
  • Пополняющийся со временем сайт с полезными утилитами и функциями на AutoIt
  • Desktop Icons Restorator - Скрипт-Программа для сохранения/восстановления позиции иконок р.стола.
  • CaptureIt - Утилита предназначена для захвата изображений с вашего экрана.
  • SwitchIt - Скрипт для конвертирования выделенного текста
  • Скрипт расскраски кода AutoIt для публикации в форумах
     
    Общие вопросы и решения на Autoit:
  • Обработчик скриптов добавляющий отладчик (debugger)
  • Интеракция между несколькими скриптами
  • Пример использование интеракции между скриптами - Добавление элементов GUI с внешнего модуля
  • Копирование большого файла с отображением данных прогресса
  • Создание динамического меню в Tray Icon (значёк в области уведомления)
  • Пример создания своего мастера (Wizard)
  • Метод позволяющий запускать код VBS не создавая временных файлов
  • Описание функции GUIRegisterMsg()
  • Пример перехвата вводимых символов с клавиатуры
  • Пример деактивирования TabItem
  • Пример вывода лога в Edit-поле (с поддержкой форматирования текста)
  • Пример остановки/начало выполнения скрипта + Слежение за б.обмена с заменой неподдерживаемых в имени файла символов
  • Пример использования меню с иконками (ModernMenu.au3) -> Список программ в меню значка в системном трее
     
  • Как по PID процесса вычислить путь запускаемого файла
  • Получение IP по подключенному сокету
     
    Отдельные функции (UDF):
  • Функции Отключения/Подключения к Интернету
  • Функция проверки подключения к Интернету
  • Функция для получения структуры директории включая подкаталоги
  • Функция для поиска в файлах
  • Функция для смены разрешения экрана
  • Функция для смены раскладки клавиатуры в определённом окне
  • Функция для получения списка процессов с допол. инфой (путь к исполняемому файлу и др.)
  • Функции и пример для отображения детального процесса закачки файла
  • Функция (и пример использования) для отображения стильного диалога “О Программе” - [Усовершенствованная версия]
  • Функция возвращает пронумерованный список всех классов определённого окна + функция получения хендлов для этих классов
  • Функция для получения заголовка окна (или его идентификатора) по ID процесса (PID)
  • Функция _StringIsUTF8Format() + _StringToUTF() - Первая проверяет если строка содержится в UTF-8 формате, вторая преобразовывает строку в UTF-8 формат
  • Функция _FileOpenDialogEx - Возвращает массив (или строку) с полными путями к выбранным файлам
  • _AU3_Lib* Функции - Предназначены для обработки подключаемых библиотек через #include
  • Функция транслитерации строки
  • Расширенная библиотека для работы с реестром
     
    За шапкой следит ViSiToR  

  • Всего записей: 6 | Зарегистр. 24-11-2005 | Отправлено: 13:20 24-11-2005 | Исправлено: Maz, 11:50 17-04-2017
    DrWatson2

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

    Цитата:
    ProcessExplorer не обновляется сразу

    ProcessExplorer v11.20. рефреш  1с.

    Всего записей: 18 | Зарегистр. 06-04-2007 | Отправлено: 08:07 13-06-2008
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    DrWatson2 08:07 13-06-2008
    Цитата:
    ProcessExplorer v11.20. рефреш  1с.

    Да, обновляется, у меня просто не те данные отображались.
    Приведённый UDF высвобождает память Working Set, соответственную колонку нужно включить в настройках PE .

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 08:31 13-06-2008
    BabyKiller

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

    Цитата:
    BabyKiller - попробуй так: send ("{ALTDOWN}н{ALTUP}")

    Пробовал, не получается.. всё равно отправляет просто букву "н".
    Версия AutoIt 3.2.12.0

    Всего записей: 36 | Зарегистр. 30-03-2006 | Отправлено: 06:20 16-06-2008
    U235

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BabyKiller, раскладка клавиатуры в момент отправки send - русская?

    Всего записей: 981 | Зарегистр. 14-12-2005 | Отправлено: 08:52 16-06-2008
    BabyKiller

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Русская, т.к. печатается просто "н"... а если бы было нажатие с клавишей альт, то тогда бы на экране она не напечаталась...
     
    Ещё сегодня проблемку нашёл стили $WS_ не работают, пишут ошибку

    Всего записей: 36 | Зарегистр. 30-03-2006 | Отправлено: 09:58 16-06-2008
    Maza Faka



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

    Цитата:
    Ещё сегодня проблемку нашёл стили $WS_ не работают, пишут ошибку

    Работают, надо просто включить их в скрипт:

    Код:

    #include <WindowsConstants.au3>

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 10:55 16-06-2008
    BabyKiller

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka
    Спасибо! странно что в хелпе об этом ни слова, или по крайней мере я ещё не увидел там...
    А как разрешить $ES_? Чего то я не нашёл... хотя поковырялся в папке \AutoIt3\Include, вроде что то оттуда надо инклудить , а что?

    Всего записей: 36 | Зарегистр. 30-03-2006 | Отправлено: 11:52 16-06-2008 | Исправлено: BabyKiller, 09:41 17-06-2008
    vipzero



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    сделал через koda
     
    #include <GUIConstants.au3>
     
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Управление нетом", 256, 71, 193, 125)
    GUISetBkColor(0x000000)
    $Button1 = GUICtrlCreateButton("Подключитися к нету", 0, 8, 131, 25, 0)
    $Button2 = GUICtrlCreateButton(Отключитися", 0, 40, 131, 25, 0)
    $Label1 = GUICtrlCreateLabel("HiGH_ZeRO", 136, 24, 117, 27)
    GUICtrlSetFont(-1, 14, 400, 0, "Book Antiqua")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
     
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
     
        EndSwitch
    WEnd
     
    теперь хочу назначить на $Button1 Run ('cmdow rasdial NET USER Pass','','')
                                     а на  $Button2 Run ('cmdow rasdial /d','','')
    но незнаю как

    Всего записей: 17 | Зарегистр. 01-11-2007 | Отправлено: 00:51 18-06-2008
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    vipzero 00:51 18-06-2008
    Цитата:
    хочу назначить на $Button1

     

    Код:
    #include <GUIConstants.au3>  
     
    #Region ### START Koda GUI section ### Form=  
    $Form1 = GUICreate("Управление нетом", 256, 71, 193, 125)  
    GUISetBkColor(0x000000)  
    $Button1 = GUICtrlCreateButton("Подключитися к нету", 0, 8, 131, 25, 0)  
    $Button2 = GUICtrlCreateButton(Отключитися", 0, 40, 131, 25, 0)  
    $Label1 = GUICtrlCreateLabel("HiGH_ZeRO", 136, 24, 117, 27)  
    GUICtrlSetFont(-1, 14, 400, 0, "Book Antiqua")  
    GUICtrlSetColor(-1, 0xFFFFFF)  
    GUISetState(@SW_SHOW)  
    #EndRegion ### END Koda GUI section ###  
     
    While 1  
        $nMsg = GUIGetMsg()  
        Switch $nMsg  
            Case $GUI_EVENT_CLOSE  
                Exit  
            Case $Button1
                Run ('cmdow rasdial NET USER Pass','','')
            Case $Button2
                Run ('cmdow rasdial /d','','')
        EndSwitch  
    WEnd


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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 01:48 18-06-2008
    DrWatson2

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как можно программно отслеживать состояние соединения с интернетом через dial-up.
    Пробывал это "DllCall("wininet.dll","int","InternetGetConnectedState","int_ptr",0,"int",0)", но так работает если руками отлючать/включать. А если соединение рвет провайдер (сотовый), то это не срабатывает. Возвращает 1, хотя соединение и разорвано.

    Всего записей: 18 | Зарегистр. 06-04-2007 | Отправлено: 08:49 18-06-2008
    Maza Faka



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

    Код:
    Global Const $INTERNET_CONNECTION_MODEM = 0x1
    Global Const $INTERNET_CONNECTION_LAN = 0x2
    Global Const $INTERNET_CONNECTION_PROXY = 0x4
    Global Const $INTERNET_CONNECTION_MODEM_BUSY = 0x8
    Global Const $INTERNET_RAS_INSTALLED = 0x10
    Global Const $INTERNET_CONNECTION_OFFLINE = 0x20
    Global Const $INTERNET_CONNECTION_CONFIGURED = 0x40
     
    Dim $State, $val
     
    $InetStruct
    = DllStructCreate("int")
     
    DllCall("wininet.dll", "int", "InternetGetConnectedState", "ptr", DllStructGetPtr($InetStruct), "dword", 0)
     
    $val = DllStructGetData($InetStruct, 1)
     
    If BitAND($val, $INTERNET_CONNECTION_MODEM) Then $State &= "Modem connection" & @LF
    If BitAND($val, $INTERNET_CONNECTION_LAN) Then $State &= "LAN connection" & @LF
    If BitAND($val, $INTERNET_CONNECTION_PROXY) Then $State &= "Proxy connection" & @LF
    If BitAND($val, $INTERNET_CONNECTION_MODEM_BUSY) Then $State &= "Modem bussy" & @LF
    If BitAND($val, $INTERNET_RAS_INSTALLED) Then $State &= "RAS installed" & @LF
    If BitAND($val, $INTERNET_CONNECTION_OFFLINE) Then $State &= "Offline connection" & @LF
    If BitAND($val, $INTERNET_CONNECTION_CONFIGURED) Then $State &= "Connection configured"
     
    MsgBox(0, "Connection", $State)

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:58 18-06-2008
    DrWatson2

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

    Всего записей: 18 | Зарегистр. 06-04-2007 | Отправлено: 09:56 18-06-2008
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Возникла необходимость сделать программку "кликкер"
    Нужно чтоб она через определённые промежутки времени эмулировала клик мышки.
    через Sleep() нельзя, так как заснёт весь скрипт, а у программы будет ГУИ и он не должен спать. В Гуи я буду задавать значение времени через коротое будет делаться клик и колличество кликов. Подскажите как лучше реализовать это?
    Гуи типа такого:


    Код:
    #include <GUIConstants.au3>
    #NoTrayIcon
    $Form1 = GUICreate("Click", 143, 94, 193, 125)
    $Input1 = GUICtrlCreateInput("", 8, 8, 65, 21)
    $Button1 = GUICtrlCreateButton("START", 80, 8, 51, 49, 0)
    $Label1 = GUICtrlCreateLabel("start: 'Home'    stop: 'End'", 8, 64, 124, 17)
    $Input2 = GUICtrlCreateInput("0", 8, 32, 41, 21)
    $Updown1 = GUICtrlCreateUpdown($Input2)
    GUISetState(@SW_SHOW)
    HotKeySet ("{HOME}","start")
    HotKeySet ("{END}","stop")
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
        EndSwitch
    WEnd


    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 19:53 18-06-2008
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ynbIpb
    Попробуй через DllCallBack функцию:

    Код:
    #NoTrayIcon
    #include
    <GUIConstants.au3>
     
    HotKeySet("{HOME}","start")
    HotKeySet("{END}","stop")
     
    Global $TimerCall, $elapse = 1000 ;интервал времени в милисекундах
     
    Global $TimerProcHandle = DllCallbackRegister("_TimerProc", "none", "hwnd;int;int;dword")
     
    $Form1 = GUICreate("Click", 143, 94, 193, 125)
     
    $Input1 = GUICtrlCreateInput("", 8, 8, 65, 21)
     
    $Button1 = GUICtrlCreateButton("START", 80, 8, 51, 49, 0)
     
    $Label1 = GUICtrlCreateLabel("start: 'Home'    stop: 'End'", 8, 64, 124, 17)
     
    $Input2 = GUICtrlCreateInput("0", 8, 32, 41, 21)
     
    $Updown1 = GUICtrlCreateUpdown($Input2)
     
    GUISetState(@SW_SHOW)
     
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
        EndSwitch
    WEnd

     
    DllCallbackFree($TimerProcHandle)
    DllCall("user32.dll", "int", "KillTimer", "hwnd", 0, "int", $TimerCall)
     
    Func start()
        $TimerCall = DllCall("user32.dll", "int", "SetTimer", "hwnd", 0, "int", 0, "int", $elapse, _
                             "ptr", DllCallbackGetPtr($TimerProcHandle))
        $TimerCall = $TimerCall[0]
    EndFunc
     
    Func stop()
        DllCall("user32.dll", "int", "KillTimer", "hwnd", 0, "int", $TimerCall)
    EndFunc
     
    Func _TimerProc($hWnd, $Msg, $IdTimer, $dwTime)
        ;Здесь будет эмулироваться нажатия кнопок мыши с интервалом в 1 секунду.
        ConsoleWrite("---> Mouse click" & @LF)
    EndFunc

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:13 19-06-2008
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    спасибо! попробую разобраться.
    Никогда не работал с ДЛЛками.

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 20:40 19-06-2008
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Небольшая задачка.
     

    Код:
    If $answer = 0 Then
      $Result="No"
    Else
      $Result="Yes"
    EndIf

     
    Написать это в виде (пример)
     
    $Result=StringLeft('Yes',($ansver>0)*1024) & StringLeft('No',($ansver=0)*1024)
     
    Не получается красиво это сделать ...  

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 01:22 20-06-2008 | Исправлено: NIKZZZZ, 02:38 20-06-2008
    XpycTMD

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

    Код:
    StringIsAlpha("string")

    не подходит

    Всего записей: 120 | Зарегистр. 17-01-2006 | Отправлено: 15:54 24-06-2008
    Loopback



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

    Цитата:
    Подскажите пожалуста  
    Как проверить состоит ли строка только из букв и пробелов

     
    Я бы сделал примерно так:
     

    Код:
    If StringRegExp($string, "\A[A-Za-zА-Яа-я\x20]+\z") Then
    ...

     
    Если нужно за пробел считать не только сам пробел, но еще и TAB и т.д. - можно \x20 заменить на \s.

    Всего записей: 174 | Зарегистр. 08-03-2002 | Отправлено: 18:49 24-06-2008 | Исправлено: Loopback, 18:50 24-06-2008
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    NIKZZZZ 01:22 20-06-2008
    Цитата:
    Написать это в виде

    Для этого есть UDF _Iif()...
     

    Код:
    #include <Misc.au3>
     
    $Answer = MsgBox(36, "", "YES or NO?")
     
    $Result = _Iif($Answer = 7, "No", "Yes")
     
    MsgBox(0, "", $Result)

     
    Добавлено:
     
    XpycTMD 15:54 24-06-2008
    Цитата:
    Код: StringIsAlpha("string")  
     не подходит

    Это проверяет если строка состоит тольк с букв алфавита.
     
    Можно ещё так:
     

    Код:
     
    $sLine = "Test and more test"
     
    If StringRegExp($sLine, "(?i)[^a-zа-я ]+") Then
        ConsoleWrite("! Line includes *not* only letters and spaces" & @LF)
    Else
        ConsoleWrite("+ Line includes *only* letters and spaces" & @LF)
    EndIf


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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 23:33 24-06-2008 | Исправлено: ViSiToR, 23:52 24-06-2008
    hunter19

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

    Всего записей: 86 | Зарегистр. 28-02-2007 | Отправлено: 06:49 25-06-2008
       

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

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 1)
    Widok (12-01-2009 14:47): лимит страниц. продолжаем здесь


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru