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

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

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

gyra (23-01-2020 10:51): AutoIT (Часть 4)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

   

Widok



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

 
Описание:

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

 
  • Справки
  • Инструменты
  • Ресурсы, посвящённые AutoIt
  • Полезные советы новичкам и не только
  • Готовые решения
  • Скрипт раскраски кода AutoIt для публикации в форумах
     


     
    За шапкой следит ViSiToR / AZJIO  

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 13:07 01-06-2010 | Исправлено: Maz, 12:29 10-01-2020
    gregaz



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

    Цитата:
    Старая версия Au3ToPost, и лишние теги, видимо добавленные до раскраски

     
    Версию обновил , правда
    почему-то  табуляция теряется после раскраски

    Всего записей: 79 | Зарегистр. 02-06-2007 | Отправлено: 14:40 31-10-2010
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gregaz -- не совсем, но спасибо за вариант.
    Ребят, очень нужна помощь или совет по второй части вопроса в этом посте.

    Всего записей: 3267 | Зарегистр. 30-05-2007 | Отправлено: 15:45 31-10-2010
    Kar1son

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В GUI есть элемент ListView, в нем куча строк, как сделать чтобы можно было выделить несколько строк и скопировать в буфер обмена? (желатьельно простым CTRL+C)
     
    выделяться выделяется а копироваться не хочет

    Всего записей: 187 | Зарегистр. 23-08-2006 | Отправлено: 09:25 01-11-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kar1son
    Это тоже что скопировать кнопку в буфер. Могу только предложить включить стиль выделения нескольких пунктов и по нажатию кнопки, заранее созданной происходит чтение текста пунктов и отправка в буфер.
     
    Zloy_Gelud
    Пробовал, не получилось.
     
    _____________________
    Сделал Launcher, предназначен для быстрого создания менюшки для CD,DVD-диска. Все настройки хранятся в ini, кнопки распределяются автоматически. Подробно читать здесь, там же скомпилированный файл.

    Всего записей: 4560 | Зарегистр. 03-05-2006 | Отправлено: 11:40 01-11-2010 | Исправлено: AZJIO, 19:29 02-11-2010
    MKN



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Иногда при регистрации программ, в окнах ихних рег-форм, присутствуют номера, сгенерированные самой программой, в зависимости от ID машины.  
    Потом эти номера "участвуют" в дальнейшей регистрации программы (отсылаются производителю, называются по телефону и т.п.).  
    Но скопировать эти номера в буфер, из поля такой рег-формы не возможно ! Как будто функция копирования как то заблокирована.  
    Приходится вручную, глядя на цифирки, их записывать...  
     
    Есть ли в AutoIT какие пути обхода такой блокировки ? Это часто необходимо для автоматической регистрации ПО после установки с помощью скриптов AutoIT...

    Всего записей: 4964 | Зарегистр. 21-04-2005 | Отправлено: 11:51 01-11-2010 | Исправлено: MKN, 11:56 01-11-2010
    Kar1son

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

    Всего записей: 187 | Зарегистр. 23-08-2006 | Отправлено: 11:54 01-11-2010
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kar1son,
    Попробуйте так, у меня работает: Читать дальше..
     
     
    Добавлено:
    MKN,
    А можно пример какой-нибудь такой программы.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 12:00 01-11-2010 | Исправлено: madmasles, 12:03 01-11-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kar1son
    Посмотри ControlListView, там есть GetSelected, текст из справки:
    Цитата:
    Если option равно 1, то строка будет содержать индексы всех выделенных граф, отделяемые символом |. Например, "0|3|4|10".

     
    MKN
    Думаю есть. Вместо имитации Ctrl+C (Send) попробовать использовать ControlSend.

    Всего записей: 4560 | Зарегистр. 03-05-2006 | Отправлено: 12:43 01-11-2010
    MKN



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

    Цитата:
    А можно пример какой-нибудь такой программы.

    Например,  Corel WinDVD 2010 (в Варезе есть моя перепаковка размером 35M)
     
    AZJIO

    Цитата:
    попробовать использовать ControlSend

    попробую... но скорее всего и это не поможет.

    Всего записей: 4964 | Зарегистр. 21-04-2005 | Отправлено: 12:51 01-11-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MKN
    Я встречал, когда Ctrl+C не работает, а контекстное меню "Вставить" работает. Так что, проба решит дело, тем более это не сложно. Утилиткой Au3Info.exe получить данные элементов и проверить.
     
    А вот кто знает, почему у меня стиль плоских кнопок не работает $BS_FLAT?
    Вот я делал плеер когда-то Play.exe (525.5 КБ) в нём плоские цветные кнопки и нажимаются они быстро в отличии от цветных кнопок автоита. Как то же они делаются. UDF посмотрел, там тоже подобного нету.

    Всего записей: 4560 | Зарегистр. 03-05-2006 | Отправлено: 13:07 01-11-2010
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MKN
    Цитата:
    Например,  Corel WinDVD 2010 (в Варезе есть моя перепаковка размером 35M)

    Не нашел.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 13:23 01-11-2010
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 13:43 01-11-2010
    Цитата:
    Думаю есть. Вместо имитации Ctrl+C (Send) попробовать использовать ControlSend.

    Если я правильно понял, то там даже руками ничего не копируется (не выделяется?), т.ч никакие *Send не помогут.
    Либо ControlGetText, либо методом распознавания капчи (OCR).

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 13:30 01-11-2010
    MKN



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
    http://forum.ru-board.com/topic.cgi?forum=35&bm=1&topic=39070&start=580#14
     
    AZJIO

    Цитата:
    проба решит дело, тем более это не сложно

    Очевидные операции проверены в первую очередь. Главное, есть ведь контекстное меню с "Копировать", но толку с того никакого - не копируется ни по Ctrl C не из контекста. Соответственно ничего и не вставляется .
     
    Об окне данных минимум: Title - отсутсвует, Class - #32770
    Control Info : Class -  Internet Explorer_Server,   Instance 1
     
    ни кнопки, ни поля ввода не имеют никаких данных...
     
    ViSiToR

    Цитата:
    Либо ControlGetText, либо методом распознавания капчи (OCR)

    Это не капча (к чему тогда в контексте иметь копировать ?)

    Всего записей: 4964 | Зарегистр. 21-04-2005 | Отправлено: 13:54 01-11-2010 | Исправлено: MKN, 13:56 01-11-2010
    gregaz



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles 15:00 01-11-2010

    Цитата:
    Kar1son,  
    Попробуйте так, у меня работает

     
    А может вместо преобразования в цикле  использовать : _ArrayToString  ?
     
     
     

    Всего записей: 79 | Зарегистр. 02-06-2007 | Отправлено: 14:31 01-11-2010 | Исправлено: gregaz, 13:08 02-11-2010
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MKN,
    Интересное окно. У меня кроме Handle самого окна и Handle контрола CLASS:Internet Explorer_Server; INSTANCE:1 получить больше ничего не получилось.
     
    gregaz
    Цитата:
    А может вместо преобразования в цикле  использовать : _ArrayToString  ?
    Не понял, а где там можно использовать _ArrayToString()?
     

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 19:16 01-11-2010
    gregaz



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

    Цитата:
    Не понял, а где там можно использовать _ArrayToString()?

    Приношу извинения, ошибся.

    Всего записей: 79 | Зарегистр. 02-06-2007 | Отправлено: 13:09 02-11-2010 | Исправлено: gregaz, 13:39 02-11-2010
    AZJIO



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

    Всего записей: 4560 | Зарегистр. 03-05-2006 | Отправлено: 21:44 02-11-2010
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 22:44 02-11-2010
    Цитата:
    Как сделать прозрачную кнопку, чтоб в качестве фона можно было использовать картинку.

    Метод #1:

    Код:
    #include <GUIConstantsEx.au3>
    #include <GUIImageList.au3>
    #include <GUIButton.au3>
     
    $hGUI   = GUICreate("Button With Icons + Text")
     
    $btn1   = _GUICtrlCreateButton("Button1", 10, 10, 90, 25, -1, -1, "shell32.dll", -6, $BUTTON_IMAGELIST_ALIGN_LEFT)
    $btn2   = _GUICtrlCreateButton("Button2", 10, 50, 90, 25, -1, -1, "shell32.dll", -21, $BUTTON_IMAGELIST_ALIGN_RIGHT)
    $btn3   = _GUICtrlCreateButton("Button3", 10, 90, 50, 50, -1, -1, "shell32.dll", -32, $BUTTON_IMAGELIST_ALIGN_TOP)
    $btn4   = _GUICtrlCreateButton("Button4", 10, 140, 50, 50, -1, -1, "shell32.dll", -14, $BUTTON_IMAGELIST_ALIGN_BOTTOM)
     
    GUISetState()
     
    While GUIGetMsg() <> $GUI_EVENT_CLOSE
    WEnd
     
    Exit
     
    Func _GUICtrlCreateButton($sText, $iLeft, $iTop, $iWidth = -1, $iHeight = -1, $nStyle = -1, $nExStyle = -1, $sIconFile = '', $nIconID = 0, $nAlign = -1)
        Local $nID = GUICtrlCreateButton($sText, $iLeft, $iTop, $iWidth, $iHeight, $nStyle, $nExStyle)
     
        If $sIconFile = '' Then
            Return $nID
        EndIf
     
        Local $hImgLst = _GUIImageList_Create(16, 16, 5, BitOr($ILC_MASK, $ILC_COLOR32), 0, 1)
        _GUIImageList_AddIcon($hImgLst, $sIconFile, $nIconID)
        _GUICtrlButton_SetImageList($nID, $hImgLst, $nAlign)
     
        Return $nID
    EndFunc

     
    Метод #2:

    Код:
    #include <GUIConstantsEx.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>
     
    Global $Draw = False
    Global $aCurPos
     
    $hGUI = GUICreate("My GUI", 300, 200)
     
    $pic = GUICtrlCreatePic(@WindowsDir & "\Web\Wallpaper\Windows XP.jpg", 0, 0, 300, 200)
    GUICtrlSetState(-1, $GUI_DISABLE)
     
    $button = GUICtrlCreateLabel("Test", 100, 65, 100, 25, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
     
    GUICtrlCreateGroup("", -99, -99, 1, 1)
     
    GUISetState()
     
    FrameRect1(GUICtrlGetHandle($button), 0xFFFFFF)
     
    While 1
        $aCurPos = GUIGetCursorInfo()
     
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
            Case $button
                While $aCurPos[2] = 1
                    $aCurPos = GUIGetCursorInfo()
                    Sleep(10)
                WEnd
     
                If $aCurPos[4] = $button Then
                    MsgBox(0, "Info", "Button pressed", 0, $hGUI)
                EndIf
        EndSwitch
     
        If IsArray($aCurPos) Then
            If ($aCurPos[4] = $button) And ($Draw = False) Then
                $Draw = True
                GUICtrlSetFont($button, 10, 800)
                FrameRect1(GUICtrlGetHandle($button), 0x000000)
            ElseIf ($aCurPos[4] <> $button) And ($Draw = True) Then
                $Draw = False
                GUICtrlSetFont($button, Default, Default)
                FrameRect1(GUICtrlGetHandle($button), 0xFFFFFF)
            EndIf
        EndIf
    WEnd
     
    Func FrameRect1($hWnd, $sColor)
        Local $hDC = _WinAPI_GetDC($hWnd)
        Local $tRect = _WinAPI_GetClientRect($hWnd)
        Local $hBrush = _WinAPI_CreateSolidBrush($sColor)
     
        DllCall("user32.dll", "int", "FrameRect", "hwnd", $hDC, "ptr", DllStructGetPtr($tRect), "hwnd", $hBrush)
     
        _WinAPI_ReleaseDC($hWnd, $hDC)
        _WinAPI_DeleteObject($hBrush)
    EndFunc


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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 21:57 02-11-2010
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR,
    В Метод #2 GUICtrlCreateGroup("", -99, -99, 1, 1) зачем?
     

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 22:19 02-11-2010
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    madmasles 23:19 02-11-2010
    Цитата:
    В Метод #2 GUICtrlCreateGroup("", -99, -99, 1, 1) зачем?

    Не знаю, видимо не нужен. Пример не мой, я только разместил...

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 22:30 02-11-2010 | Исправлено: ViSiToR, 22:31 02-11-2010
       

    Страницы: 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 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)
    gyra (23-01-2020 10:51): AutoIT (Часть 4)


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru