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

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

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

    Всего записей: 119 | Зарегистр. 13-10-2008 | Отправлено: 12:06 19-02-2009
    XpycTMD

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет!
     
    Подойдет ли вот этот скрипт "Копирования большого файла с отображением данных прогресса" для копирования большого количества файлов с отображением данных прогресса???

    Всего записей: 120 | Зарегистр. 17-01-2006 | Отправлено: 12:46 19-02-2009
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые, есть ли функции (UDF) для работы с MD5 хэшами?
    Например высчитывать хэш какогонибудь файла или хэш какогонибудь слова (пароля)

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 13:58 19-02-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    XpycTMD 12:46 19-02-2009
    Цитата:
    Подойдет ли

    А почему нет?
     
    ynbIpb 13:58 19-02-2009
    Цитата:
    есть ли функции (UDF) для работы с MD5 хэшами?

    Да: 1, 2 (для строк), 3, и ещё есть несколько на оф. форуме.

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

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR, благодарю. Буду разбираться.

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 19:33 19-02-2009
    Belfigor au3



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А можно ли с помощью автоит преобразовать данные об изображении в String?
    Тоесть например нажать Prt Scr и из буфера загнать данные о положении пикселя и цвете в поток?

    Всего записей: 20 | Зарегистр. 14-02-2009 | Отправлено: 21:57 19-02-2009
    Hackproof



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    XpycTMD - Дозоры?
    sproxy
    Тут был пример на тему вкладок, у которых читается текст. В общем, создание кнопок по нажатию клавиш "1" и "2" не очень удобно, а тот пример привести к нужному содержанию я не смог.
    Можешь изобразить суть так, чтобы при клике на любое место формы без вкладок вызывалась функция, например LeftClick и RightClick? В функциях должны стоять только msgbox, для видимости вызова.  
    Буду очень признателен.

    Всего записей: 106 | Зарегистр. 24-05-2008 | Отправлено: 02:47 20-02-2009 | Исправлено: Hackproof, 02:49 20-02-2009
    sproxy



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

    Код:
    #region: - Option
        AutoItSetOption ('GUIOnEventMode',      1)
        AutoItSetOption ('MustDeclareVars',     1)
        AutoItSetOption ('TrayIconDebug',       1)
        AutoItSetOption ('TrayIconHide',        0)
    #endregion
     
    #region: - Include

        #include <GuiConstantsEx.au3>
        #Include <GuiTab.au3>
        #Include <TabConstants.au3>
        #include <WindowsConstants.au3>
    #endregion
     
    Global  $hWinMain, $hTab, $hTab0, $hLabel, $hTab0OkButton, $hTab0Input, $hTab1, $aActiveTabItem[2]
     
    $hWinMain   =   GUICreate('Tab', 400, 400, -1, -1)
                    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, '_Left_Mouse_Down') ;~ Регистрация нажатия левой кнопки мышки
                    GUISetOnEvent($GUI_EVENT_SECONDARYDOWN, '_Right_Mouse_Down');~ Регистрация нажатия правой кнопки мышки
                    GUISetOnEvent($GUI_EVENT_CLOSE, '_Exit_pro')
     
    $hTab = GUICtrlCreateTab(10, 10, 350, 350)
     
    $hTab0 = GUICtrlCreateTabitem('Вкладка Tab0')
    $hTab0OkButton = GUICtrlCreateButton('OK', 20, 50, 50, 20)
    $hTab0Input = GUICtrlCreateInput('Input', 80, 50, 70, 20)
     
    $hTab1 = GUICtrlCreateTabitem('Вкладка Tab1')
    GUICtrlCreateTabitem ('')
     
    ;~ Этот Lablel создан НЕ на Tab, поэтому он всегда сверху
    $hLabel = GUICtrlCreateLabel(   'Номер активной Tab вкладки: ' & @TAB & _GUICtrlTab_GetCurFocus($hTab) & @CRLF & _
                                    'Текст активной Tab вкладки: ' & @TAB & _GUICtrlTab_GetItemText($hTab, $aActiveTabItem[0]), 30, 80, 250, 40)
     
    GUISetState ()
    While 1
        Sleep(10)
        ;==> Проверка на смену активной вкладки Tab
        $aActiveTabItem[0] = _GUICtrlTab_GetCurFocus($hTab)
        $aActiveTabItem[1] = _GUICtrlTab_GetItemText($hTab, $aActiveTabItem[0])
        If GUICtrlRead($hLabel) <> 'Номер активной Tab вкладки: ' & @TAB & $aActiveTabItem[0] & @CRLF & 'Текст активной Tab вкладки: ' & @TAB & $aActiveTabItem[1] Then
            GUICtrlSetData($hLabel, 'Номер активной Tab вкладки: ' & @TAB & $aActiveTabItem[0] & @CRLF & 'Текст активной Tab вкладки: ' & @TAB & $aActiveTabItem[1])
            MsgBox(0, 'Что же выбранно', 'Номер активной Tab вкладки: ' & @TAB & $aActiveTabItem[0] & @CRLF & 'Текст активной Tab вкладки: ' & @TAB & $aActiveTabItem[1], -1, $hWinMain)
        EndIf
        ;==> Проверка на смену активной вкладки Tab
    WEnd
     
    Func _Exit_pro()
        Exit
    EndFunc
     
    ;~ Функция для левой нопки
    Func _Left_Mouse_Down()
        MsgBox(0, 'Left Mouse click', 'В окне программы была нажата Левая клавиша мыши', -1, $hWinMain)
    EndFunc;==> Функция для левой нопки
     
    ;~ Функция для правой кнопки
    Func _Right_Mouse_Down()
       MsgBox(0, 'Right Mouse click', 'В окне программы была нажата Правая клавиша мыши', -1, $hWinMain)
    EndFunc;==> Функция для правой кнопки

     
    не совсем понял суть.....
    в этом примере:
    1 в цикле со Sleep идет посотянная проверка изменилась ли активная вкладка или нет, если да - то показать сообщение и установить данные в label.
    2 при клике мышкой, влюбом месте окна, левой или правой вызваются соответсвующие функци...
     
     
    ViSiToR
    подскажи, пожалуйста, как называется параметр отслеживающий смену Tab вкладки в фнкциях WM_NOTIFY ?
    т.е. в справке есть для мышек: $NM_CLICK и т.д., вот такое еже есть, только реакция на смену вкладки (т.е. на k.st дейтсвия над вкладкой: нажатие мышкой, выбор с клавиатуры ит.д.)
    ?

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



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sproxy 03:16 20-02-2009
    Цитата:
    в цикле со Sleep идет посотянная проверка изменилась ли активная вкладка или нет

    Сначала лучше ждать события.
     

    Цитата:
    как называется параметр отслеживающий смену Tab вкладки в фнкциях WM_NOTIFY ?

    Пример для функции _GUICtrlTab_SetDisable():
     

    Код:
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiTab.au3>
    ;
     
    Global $aDisabled_hTabs[1]
     
    $hGUI = GUICreate("_GUICtrlTab_SetDisable Demo", 400, 300)
     
    $hTab = GUICtrlCreateTab(2, 2, 396, 296)
     
    $Tab1 = GUICtrlCreateTabItem("Tab 1")
    $Tab2 = GUICtrlCreateTabItem("Tab 2")
    $Tab3 = GUICtrlCreateTabItem("Tab 3")
     
    _GUICtrlTab_SetDisable(1) ;1 is the second tab item (by zero-based index)
     
    GUISetState()
     
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
     
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
        EndSwitch
    WEnd
     
    Func
    _GUICtrlTab_SetDisable($nTabItem, $iDisable=True)
        If $iDisable Then
            $aDisabled_hTabs[0] += 1
            ReDim $aDisabled_hTabs[$aDisabled_hTabs[0]+1]
     
            $aDisabled_hTabs[$aDisabled_hTabs[0]] = $nTabItem
        Else
            Local
    $aTmpArr[1]
     
            For $i = 1 To $aDisabled_hTabs[0]
                If $aDisabled_hTabs[$i] <> $nTabItem Then
                    $aTmpArr[0] += 1
                    ReDim $aTmpArr[$aTmpArr[0]+1]
     
                    $aTmpArr[$aTmpArr[0]] = $aDisabled_hTabs[$i]
                EndIf
            Next

     
            $aDisabled_hTabs = $aTmpArr
        EndIf
    EndFunc
     
    Func
    WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
        Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndTab
     
        $hWndTab
    = GUICtrlGetHandle($hTab)
     
        $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
        $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
        $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
        $iCode = DllStructGetData($tNMHDR, "Code")
     
        If $iIDFrom <> $hTab Then Return $GUI_RUNDEFMSG
     
        Switch $iCode
            Case $NM_CLICK  ; The user has clicked the left mouse button within the control
                ;Return 1 ; nonzero to not allow the default processing
                ;Return 0 ; zero to allow the default processing

            Case $NM_DBLCLK  ; The user has double-clicked the left mouse button within the control
     
            Case $NM_RCLICK  ; The user has clicked the right mouse button within the control
     
            Case $NM_RDBLCLK  ; The user has clicked the right mouse button within the control
     
            Case $NM_RELEASEDCAPTURE ; control is releasing mouse capture
     
            Case $TCN_SELCHANGING
                Local $iOldOpt_MCM = Opt("MouseCoordMode", 2)
     
                Local $aMousePos = MouseGetPos()
     
                Local $aHitItem1 = _GUICtrlTab_HitTest($hTab, $aMousePos[0], $aMousePos[1])
                Local $aHitItem2 = _GUICtrlTab_HitTest($hTab, $aMousePos[0]-2, $aMousePos[1]-5)
                Local $aHitItem3 = _GUICtrlTab_HitTest($hTab, $aMousePos[0]-5, $aMousePos[1])
     
                For $i = 1 To $aDisabled_hTabs[0]
                    If $aDisabled_hTabs[$i] = $aHitItem1[0] Or $aDisabled_hTabs[$i] = $aHitItem2[0] Or _
                        $aDisabled_hTabs[$i] = $aHitItem3[0] Then Return 1
                Next
     
                Opt("MouseCoordMode", $iOldOpt_MCM)
        EndSwitch
     
        Return $GUI_RUNDEFMSG
    EndFunc


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

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



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    $TCN_SELCHANGING
    во-во, именно про это и спрашивал
     

    Цитата:
    Сначала лучше ждать события.

    так если бы знал бы про $TCN_SELCHANGING, то сразу бы )))
     
    Благодраю.

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 12:57 20-02-2009
    XpycTMD

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

    Цитата:
    Дозоры?

    Не понял

    Всего записей: 120 | Зарегистр. 17-01-2006 | Отправлено: 13:17 20-02-2009
    DocBeen



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Ребята - выручайте - не пойму почему не появляется в формах данные из скрипта.  
     
    $oIE = _IECreate()
    _IENavigate($oIE, "http://esbt74.ru/virtualnaja_priemnaja/priem_pokazaniy")
    _IELoadWait($oIE)
    $oForm = _IEFormGetCollection($oIE, "form1")
    $oFio = _IEFormElementGetObjByName($oForm, "cfio")
    $oAction = _IEFormElementGetObjByName($oForm, 3)
    _IEFormElementSetValue($oFio, "test")
    _IEAction($oAction, "click")
     
    в консоли тока ошибки от этого, а с чем они связаны - не пойму.  
     
    --> IE.au3 V2.4-0 Warning from function _IEFormElementGetObjByName, $_IEStatus_NoMatch
    --> IE.au3 V2.4-0 Warning from function _IEFormElementGetObjByName, $_IEStatus_NoMatch
    --> IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType
    --> IE.au3 V2.4-0 Error from function _IEAction, $_IEStatus_InvalidDataType

    Всего записей: 147 | Зарегистр. 15-07-2005 | Отправлено: 14:38 20-02-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sproxy 12:57 20-02-2009
    Цитата:
    так если бы знал бы про

    Я про события по табам; GUICtrlSetOnEvent($iTabItem_CtrlID, "Event_Proc"), тут в Event_Proc() и нужно проверять, это я про цикл, т.е вместо цикла лучше ждать события... WM_NOTIFY не всегда лучший вариант, иногда как говорится, «Чем проще, тем проще» .

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

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



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

    Код:
    #include <IE.au3>
    $oIE = _IECreate()
    _IENavigate($oIE, "http://esbt74.ru/virtualnaja_priemnaja/priem_pokazaniy")
    _IELoadWait($oIE)
    $oForm = _IEFormGetObjByName($oIE, "form1")
    $oFio = _IEFormElementGetObjByName($oForm, "cfio")
    _IEFormElementSetValue($oFio, "test")

     
    Добавлено:

    Цитата:
    Я про события по табам; GUICtrlSetOnEvent($iTabItem_CtrlID, "Event_Proc"),

    это точно самый простой вариант - вот что то я думал что он не работает - потому и лез в WM_NOTIFY ............туплю.....
    Благодарю за урок.
     
    Добавлено:
    DocBeen
    а есть идея как капчу распознать?

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 15:38 20-02-2009
    Hackproof



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

    Цитата:
    XpycTMD

    Цитата:
    Дозоры?  

    Не понял

    Забей, просто ник похож на две вещи из одной игры. Думал, может тоже играешь.
     
    sproxy
    Суть понял, но есть проблема. Вот урезанный до минимальной работоспособности скрипт:

    Код:
    #region: - Option
        AutoItSetOption ('GUIOnEventMode',      1)
    #endregion
     
    #region: - Include

        #include <GuiConstantsEx.au3>
        #Include <GuiTab.au3>
        #Include <TabConstants.au3>
        #include <WindowsConstants.au3>
    #endregion
    $hWinMain   =   GUICreate('Tab', 400, 400, -1, -1)
                    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, '_Left_Mouse_Down')
                    GUISetOnEvent($GUI_EVENT_SECONDARYDOWN, '_Right_Mouse_Down')
                    GUISetOnEvent($GUI_EVENT_CLOSE, '_Exit_pro')
    $hTab0OkButton = GUICtrlCreateButton('OK', 20, 50, 50, 20)
    GUISetOnEvent($hTab0OkButton,"butt")
    $hTab0Input = GUICtrlCreateInput('Input', 80, 50, 70, 20)
    GUISetState ()
    While 1
        Sleep(10)
    WEnd
     
    Func
    _Exit_pro()
        Exit
    EndFunc
     
    func
    butt()
        msgbox(0,"","butt")
    EndFunc
     
    Func
    _Left_Mouse_Down()
        MsgBox(0, 'Left Mouse click', 'В окне программы была нажата Левая клавиша мыши')
    EndFunc
     
    Func
    _Right_Mouse_Down()
       MsgBox(0, 'Right Mouse click', 'В окне программы была нажата Правая клавиша мыши')
    EndFunc

     
    Проблема в том, что при попытке нажать на кнопку функция мыши продолжает срабатывать и кнопка не работает.

    Всего записей: 106 | Зарегистр. 24-05-2008 | Отправлено: 17:27 20-02-2009 | Исправлено: Hackproof, 17:32 20-02-2009
    DocBeen



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

    Всего записей: 147 | Зарегистр. 15-07-2005 | Отправлено: 20:30 20-02-2009
    sproxy



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

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

     
    умнее не придумал, может ViSiToR подскажет более дельно....:

    Код:
    #region: - Option
        Opt('GUIOnEventMode',      1)
    #endregion
     
    #region: - Include

        #include <GuiConstantsEx.au3>
        #Include <GUICtrlSetOnHover_UDF.au3>
    #endregion
    Global  $iMouseActionYesNo = 1
     
    $hWinMain   =   GUICreate('Tab', 400, 400, -1, -1)
                    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, '_Left_Mouse_Down_Action')
                    GUISetOnEvent($GUI_EVENT_SECONDARYDOWN, '_Right_Mouse_Down_Action')
                    GUISetOnEvent($GUI_EVENT_CLOSE, '_Exit_pro')
     
    $hTab0OkButton = GUICtrlCreateButton('OK', 20, 50, 50, 20)
        _GUICtrl_SetOnHover($hTab0OkButton, '_Hover_To_Element', '_Leave_Hover_To_Element'); добавить к каждому GUI элементу, который будет активным (т.е. что ли бо делать после клика по нему мышкой)
            GUICtrlSetOnEvent(-1, 'butt')
     
    $hTab0Input = GUICtrlCreateInput('Input', 80, 50, 200, 20)
        _GUICtrl_SetOnHover($hTab0Input, '_Hover_To_Element', '_Leave_Hover_To_Element')
     
    GUISetState(@SW_SHOW, $hWinMain)
    While 1
        Sleep(10)
    WEnd
    Func
    _Exit_pro()
        Exit
    EndFunc
     
    Func
    butt()
        GUICtrlSetData($hTab0Input, 'Button OK')
        MsgBox(0, 'Button Action', 'В окне программы была нажата Кнопка ОК')
    EndFunc
     
    Func
    _Hover_To_Element()
        $iMouseActionYesNo = 0
    EndFunc
    Func
    _Leave_Hover_To_Element()
        $iMouseActionYesNo = 1
    EndFunc
     
    Func
    _Left_Mouse_Down_Action()
        GUICtrlSetData($hTab0Input, '_Left_Mouse_Down_Action')
        If $iMouseActionYesNo == 1 Then
            MsgBox(0, 'Left Mouse click', 'В окне программы была нажата Левая клавиша мыши')
        EndIf
    EndFunc
    Func
    _Right_Mouse_Down_Action()
        GUICtrlSetData($hTab0Input, '_Left_Right_Mouse_Down')
        If $iMouseActionYesNo == 1 Then
            MsgBox(0, 'Right Mouse click', 'В окне программы была нажата Правая клавиша мыши')
        EndIf
    EndFunc

     
     
    Добавлено:

    Цитата:
    если подскажешь как из кода html выдрать ссылку на скачку

    выдернуть то можно.......но там же обращение к php файлу что создает картинку - каждый раз будет новая.....
     
    вариант такой:

    Код:
    #include <IE.au3>
    #include <INet.au3>
     
    $oIE = _IECreate()
    _IENavigate($oIE, "http://esbt74.ru/virtualnaja_priemnaja/priem_pokazaniy")
    _IELoadWait($oIE)
    $oForm = _IEFormGetObjByName($oIE, "form1")
    $oFio = _IEFormElementGetObjByName($oForm, "cfio")
    _IEFormElementSetValue($oFio, "test")
    ;~ $sHTML = _IEBodyReadHTML ($oIE)
    ;~ $sCapchaLink = StringMid($sHTML, StringInStr($sHTML, 'src="/captcha.php?get_captcha='), 20)

     
    $oImgs = _IEImgGetCollection ($oIE)
    For $oImg In $oImgs
        If StringInStr($oImg.src, 'captcha.php?get_captcha=') Then
            MsgBox(0, "Img Info", $oImg.src)
    ;~      $vImage = _INetGetSource($oImg.src)
    ;~      MsgBox(0, "Capcha image", $vImage)

            InetGet ($oImg.src, 'c:\CapchImage.jpg', 1, 1)
        EndIf
    Next
     
    While
    1
        If @InetGetActive == 0 Then ExitLoop
        Sleep(10)
    WEnd


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



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

    Всего записей: 106 | Зарегистр. 24-05-2008 | Отправлено: 22:43 20-02-2009
    vicbox777



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

    Цитата:
    выдернуть то можно.......но там же обращение к php файлу что создает картинку - каждый раз будет новая.....

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

    Всего записей: 165 | Зарегистр. 17-06-2008 | Отправлено: 22:50 20-02-2009
    sproxy



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

    Цитата:
    Я тоже уже час мучаюсь, но выходит то же самое, картинки каждый раз другие, даже если по одной же и той самой ссылке загружаются...

    потому что там обращение на файл php который только одно делает - выдает рендомную картинку, вернее рисует её.
    по ссылке получить эту картинку неудастся.
    тут надо каким то другим методом кавырять....
    браузер же получает картинку, как ни как, значит она должна быть где то в кеше\темпе....но как копать там хз ....
    может как то перехватывать во время загрузки....

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 01:11 21-02-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