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

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

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

    Всего записей: 13 | Зарегистр. 15-06-2009 | Отправлено: 21:39 10-01-2011
    Kar1son

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    чего то не могу найти как на GUI нарисовать линию цветную... подскажите функцию?

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

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

    Цитата:
    чего то не могу найти как на GUI нарисовать линию цветную... подскажите функцию?

    В справке посмотрите пример к функции GUICtrlCreateGraphic() и к _GDIPlus_GraphicsDrawLine().

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 13:34 12-01-2011 | Исправлено: madmasles, 13:37 12-01-2011
    Kar1son

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
    спасибо работает, но есть проблема. даже скрипт из примера к функции _GDIPlus_GraphicsDrawLine(), если окошко сдвинуть влево за край, а потом вернуть то нарисованые линии пропадают

    Всего записей: 187 | Зарегистр. 23-08-2006 | Отправлено: 16:27 12-01-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kar1son
    Можно нестандартно GUICtrlCreateLabel (любого размера), и установить цвет GUICtrlSetBkColor.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 16:37 12-01-2011
    gregaz



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

    Цитата:
    чего то не могу найти как на GUI нарисовать линию цветную... подскажите функцию

    Вот простой вариант:

    Код:
    #include<GuiConstantsEx.au3>
     
    $hGui = GUICreate("",300, 200,-1,-1)
    GUISetBkColor(0xC0C0B0)
     
    GUICtrlCreateLabel("",10,100,200,2)
    GUICtrlSetBkColor(-1,0xCC00CC)
     
    GUICtrlCreateLabel("",100,50,2,100)
    GUICtrlSetBkColor(-1,0x0000CC)
     
    GUISetState()
     
    While 1
       $aMsg = GUIGetMsg(1)
       Switch $aMsg[0]
          Case $GUI_EVENT_CLOSE
             Exit
        EndSwitch
    WEnd
     

    Всего записей: 79 | Зарегистр. 02-06-2007 | Отправлено: 16:50 12-01-2011
    madmasles

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

    Цитата:
    даже скрипт из примера к функции _GDIPlus_GraphicsDrawLine(), если окошко сдвинуть влево за край, а потом вернуть то нарисованые линии пропадают

    Странно. Сейчас проверил, тряс окно как грушу - линия на месте.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 17:23 12-01-2011
    Kar1son

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
    у меня когда за край экрана сдвигаешь часть окна, то  линия на этой(скрытой) части пропадает
    AZJIO
    gregaz
    спасибо, пока так и сделаю, пока с GraphicsDrawLine не получится

    Всего записей: 187 | Зарегистр. 23-08-2006 | Отправлено: 18:02 12-01-2011
    XOBAH

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте!
    Хочу назначить выполнение функции на сочетание кнопок ctrl + F12. Но ничего не выходит...
     
    Использовал эту функцию:
     
    HotKeySet( "{LCTRL}{F12}", "Kill")
     
    Подскажите пожалуйста, как правильно назначить...
     
    Функция работоспособна. Вешал исполнение этого скрипта на сочетание Shift + Alt + K --- функция работает нормально

    Всего записей: 19 | Зарегистр. 04-12-2010 | Отправлено: 21:48 12-01-2011
    madmasles

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

    Цитата:
     на сочетание кнопок ctrl + F12.

    Код:
    ;...
    HotKeySet('^{F12}', 'Kill')
    ;...

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 21:58 12-01-2011 | Исправлено: madmasles, 21:59 12-01-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    По информации отсюда сделал упрощёный пример:

    Код:
    $Gui = GUICreate("Получить индекс", 240, 135)
    $List = GUICtrlCreateList("", 5, 5, 230, 125, 0x00000800)
    GUICtrlSetData(-1, "Item 1|Item 2|Item 3|Item 4|Item 5|Item 6|Item 7")
    GUISetState()
    While 1
        Switch GUIGetMsg()
            Case -3
                Exit
            Case $List
                Dim $tArray = DllStructCreate("int[1]")
                GUICtrlSendMsg($List, 0x0191, 1, DllStructGetPtr($tArray))
                MsgBox(0, 'Индекс', DllStructGetData($tArray, 1, 1))
        EndSwitch
    WEnd

    Осталось проблема, как разрешить выделение только одного пункта?
    1. Убрав 0x00000800 ($LBS_EXTENDEDSEL) скрипт не работает, так как 0x0191 ($LB_GETSELITEMS) работает со стилем расширенного выделения.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 00:12 13-01-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 00:12 13-01-2011
    Цитата:
     как разрешить выделение только одного пункта?

    Не страдай ерундой, используй библиотеки и константы в виде переменных:
     

    Код:
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
     
    $Gui = GUICreate("Получить индекс", 240, 135)
     
    $List = GUICtrlCreateList("", 5, 5, 230, 125);, $LBS_EXTENDEDSEL)
    GUICtrlSetData(-1, "Item 1|Item 2|Item 3|Item 4|Item 5|Item 6|Item 7")
    GUISetState()
     
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
            Case $List
                $iSelected = _GUICtrlListBox_GetCurSel($List)
                MsgBox(0, 'Индекс', $iSelected)
        EndSwitch
    WEnd


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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 01:27 13-01-2011
    AZJIO



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

    Код:
    $Gui = GUICreate("Получить индекс", 240, 135)
    $List = GUICtrlCreateList("", 5, 5, 230, 125)
    GUICtrlSetData(-1, "Item 1|Item 2|Item 3|Item 4|Item 5|Item 6|Item 7")
    GUISetState()
    While 1
        Switch GUIGetMsg()
            Case -3
                Exit
            Case $List
                MsgBox(0, 'Индекс', GUICtrlSendMsg($List, 0x0188, 0, 0)) ; $LB_GETCURSEL
        EndSwitch
    WEnd

    зачем мне библиотеки, если там проверятся $Debug_LB = False, проверка переданного параметра является ли он хендл и тянет за собой WinAPI и прочие UDF (7шт), и неизвестно что те за собой тянут, лишние 60 кб по максимуму сжатого скомпилированного скрипта.
    ___________________________
    Обновлено: JumpReg, ReName - добавлена вкладка "Транслит"

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 03:14 13-01-2011 | Исправлено: AZJIO, 03:52 13-01-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 03:14 13-01-2011
    Цитата:
    проверка переданного параметра является ли он хендл и тянет за собой WinAPI

    Ну можно же передать ему и hWnd (GUICtrlGetHanndle).
     

    Цитата:
    лишние 60 кб по максимуму сжатого скомпилированного скрипта.

    Используй Obfuscator в таком случае, иначе твои скрипты для большинства будут иметь атрибут “Write Only” .

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 10:38 13-01-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    Сделал парсер для выкладывания скриптов у себя на сайт :

    Код:
    $file = FileOpen(@ScriptDir&'\file.htm', 0)
    $HTML = FileRead($file)
    FileClose($file)
     
    $file = FileOpen(@ScriptDir&'\template.htm', 0)
    $template = FileRead($file)
    FileClose($file)
     
    $HTML=StringRegExpReplace($HTML, '<span class="au3_S(\d+)">', '<span class="S\1">')
    $HTML=$template&StringRegExpReplace($HTML, '(?si)(^.*<pre class="au3_codebox"><span>)(.*)(\r\n</pre>)'</span>, '\2')&'</pre>'
     
    $file = FileOpen(@ScriptDir&'\New_file.htm',2)
    FileWrite($file, $HTML)
    FileClose($file)

    После отработки Au3ToPost, запускаю скрипт-парсер и он выдаёт готовый вариант, вставляя в шапку стиль из файла-шаблона.
    К Au3ToPost ещё бы кнопочку "обработать буфер обмена" с хоткеем, чтоб не перезапускать с ком-строкой.
    Эта опция: /Selection:Code - передаст на обработку "Код" (Code) практически не используема, так как код чаще в одну строку не бывает, а выделенное многострочное не совсем корректно обрабатывается. Всвязи с этим может лучше опция "Обработать буфер обмена в свёрнутом режиме"? Я с этим сталкивался в скрипте txt2au3, через буфер стабильно, многостроковый текст в ком строке - криво, нестабильно.
     
    ViSiToR

    Цитата:
    Ну можно же передать ему и hWnd
    нет, у меня частный случай, один листбокс и добавление не планируется, поэтому с ID компактней.

    Цитата:
    Используй Obfuscator
    код на сто строчек всё равно добавится и вообще-то Obfuscator увеличивает файл заметней.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 10:51 13-01-2011 | Исправлено: AZJIO, 10:57 13-01-2011
    Rhinosniper

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Парни мне нужно сделать автоактиватор для кейгена(игры). Дайте прогу или скрипты, в общем помогите))

    Всего записей: 21 | Зарегистр. 25-09-2010 | Отправлено: 20:10 14-01-2011
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Rhinosniper, если сам вообще ни капельки, то в Стол заказов
    з.ы.
    На на предыдущих страницах я уже давал пример активации. Одолели репакеры)
    Ссылка

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 21:24 14-01-2011
    HandyCache

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

    Цитата:
    Есть файлы такого вида ar1x001, ar1x002, ar1x003, arp1x001 и до ar999x001, ar1x002, ar999x003, arp999x001 и т.д    
    Нужно все файлы начинающиеся с ar1, arp1, где 1 число от 1 до 999, разложить по папкам от 001 до 999


    Цитата:
    #include <File.au3>  
     
    $sDirFrom = @ScriptDir ;папка в которой ищем  
    $sDirTo = @ScriptDir & '\test' ;папка куда перемещаем  
     
    If Not FileExists($sDirFrom) Then  
        MsgBox(16, 'Error', 'Нет такой папки ' & $sDirFrom)  
        Exit  
    EndIf  
    $aFileList = _FileListToArray($sDirFrom, 'ar*', 1)  
    If @error = 4 Then  
        MsgBox(16, 'Error', 'Нет таких файлов в папке ' & $sDirFrom)  
        Exit  
    EndIf  
    For $i = 1 To $aFileList[0]  
        If StringRegExp($aFileList[$i], '(ar|arp)(\d{3})x', 0) And _  
                Not StringRegExp($aFileList[$i], '(ar|arp)(000)x', 0) Then  
            FileMove($sDirFrom & '\' & $aFileList[$i], _  
                    $sDirTo & '\' & StringRegExpReplace($aFileList[$i], '^(?:ar|arp)(\d{3})x.*', '\1') & _  
                    '\' & $aFileList[$i], 9)  
        EndIf  
    Next

    Что нужно изменить в скрипте если вместо ar001x001, ar001x002, ar01x003, arp01x001, вот такие файлы ar1x001, ar1x002, ar1x003, arp1x001 и до ar999x001, ar1x002, ar999x003, arp999x001 и т.д? Спасибо.

    Всего записей: 130 | Зарегистр. 09-10-2008 | Отправлено: 14:02 15-01-2011 | Исправлено: HandyCache, 14:14 15-01-2011
    madmasles

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

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 15:03 15-01-2011
    HandyCache

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно 1-999, но лучше 001-999.

    Всего записей: 130 | Зарегистр. 09-10-2008 | Отправлено: 15:17 15-01-2011
       

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