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

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

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

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

    Вижу, что идеальный, но не пойму почему у меня НЕ РАБОТАЕТ ComboBoxEx.  
    Элемент создается, но не могу заполнить его данными.  
    При этом GetItemParam работает .  
    В примере из справки - все ОК. Вроде повторяю то же самое - но данные в элементе не отображаются.  
     
    Что-то не так в самом коде скрипта, в который вставляю ComboBoxEx
    Ниже привожу код - может сможете подсказать, что не так.  
    В строке 28 создается элемент, содержимое которого заполняю функцией select_type() в строке 108 и потом устанавливаю параметр (SetItemParam) в строке 110 :
    Код
     
     

    Всего записей: 47 | Зарегистр. 03-11-2008 | Отправлено: 18:56 21-11-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    frb_noname
    Думаю комбо нужно тоже создавать с помощью _GUICtrlComboBoxEx_Create

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 01:08 22-11-2011
    frb_noname

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

    Цитата:
    frb_noname
    Думаю комбо нужно тоже создавать с помощью _GUICtrlComboBoxEx_Create

    Да вот так и делаю (тоже думал, что в этом проблема), элемент создается, но на этом все - не заполняется данными :
     

    Цитата:
    $combo_tech_type = _GUICtrlComboBoxEx_Create ($Form1,"Тип техники", 32, 84, 161, 25)  


    Цитата:
    $tbl_rez = _SQLite_GetTable2d (-1, "SELECT id, name FROM spr_tech order by name;", $rez, $rows, $columns)
                If $tbl_rez = $SQLITE_OK Then
                    _SQLite_Display2DResult($rez)
     
                    ;|=========== занесение данных двухмерного массива в комбо  
                    For $x=1 To $rows
                        _GUICtrlComboBoxEx_AddString ($combo_tech_type, $rez[$x][1])
                        _GUICtrlComboBoxEx_SetItemParam($combo_tech_type,$x,$rez[$x][0])
                    Next
     

     
     
     
     
     
     

    Всего записей: 47 | Зарегистр. 03-11-2008 | Отправлено: 10:13 22-11-2011 | Исправлено: frb_noname, 10:18 22-11-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    frb_noname,
    ИМХО, так проще.
    Код:
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <Array.au3>
     
    Global $aData[11][2] = [[10]], $sDate
     
    $hForm = GUICreate('MyGUI', 300, 161)
    $nInput = GUICtrlCreateInput('', 10, 40, 100, 19, $ES_READONLY)
    $nButton = GUICtrlCreateButton('Click', 100, 70, 100)
    $nCombo = GUICtrlCreateCombo('', 10, 130, 280, 21, $CBS_DROPDOWNLIST)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $sDate = ''
    GUISetState()
     
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
            Case $nButton
                GUICtrlSetData($nCombo, '')
                For $i = 1 To $aData[0][0]
                    $aData[$i][0] = $i
                    $aData[$i][1] = Chr(Random(65, 90, 1))
                    For $j = 1 To 4
                        $aData[$i][1] &= Chr(Random(97, 122, 1))
                    Next
                Next
                _ArraySort($aData, 0, 1, 0, 1)
                _ArrayDisplay($aData)
                For $i = 1 To $aData[0][0]
                    ;$sDate &= $aData[$i][0] & '   ' & $aData[$i][1] & '|'
                    $sDate &= $aData[$i][0] & '|'
                Next
                GUICtrlSetData($nCombo, $sDate, $aData[0][0])
                GUICtrlSetState($nCombo, $GUI_ENABLE)
                $sDate = ''
            Case $nCombo
                $Index = GUICtrlSendMsg($nCombo, $CB_GETCURSEL, 0, 0)
                GUICtrlSetData($nInput, $aData[$Index + 1][1])
        EndSwitch
    WEnd

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А есть какая-нибудь функция для создания/распаковки cab архивов?

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 12:27 23-11-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    я через ком-строку делал

    Код:
    RunWait(@ComSpec & ' /C makecab.exe /D Compress=ON  /D CompressionMemory=21 /D CompressionType=LZX /D CompressionLevel=7 ' & $IMG_NameFile0, '', @SW_HIDE)

     
    frb_noname

    Код:
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiComboBoxEx.au3>
     
    Global $a[11][3] = [ _
            [
    10, 12, 10], _
            [
    1, 'текст 1', 1234], _
            [
    2, 'Привет', 390], _
            [
    3, 'ага', 879], _
            [
    4, 'второе', 45678], _
            [
    5, 'вчера', 8], _
            [
    6, 'код', 3], _
            [
    7, 'автоит', 6787], _
            [
    8, 'пример', 0365], _
            [
    9, 'асоцир', 3262], _
            [
    10, 'конец', 6554]]
     
    $hGUI = GUICreate("Ассоциативный комбо", 300, 200)
    $hCombo = _GUICtrlComboBoxEx_Create($hGUI, "", 42, 42, 90, 300)
     
    ; _GUICtrlComboBoxEx_BeginUpdate($hCombo)
    For $i = 1 To $a[0][0]
        _GUICtrlComboBoxEx_AddString($hCombo, $a[$i][1])
        _GUICtrlComboBoxEx_SetItemParam($hCombo, $i - 1, $i)
    Next
    ; _GUICtrlComboBoxEx_EndUpdate($hCombo)
     
    $StatusBar = GUICtrlCreateLabel('', 5, 5, 190, 17)
     
    GUISetState()
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
     
    While 1
        $msg = GUIGetMsg()
        Switch $msg
            Case -3
                Exit
        EndSwitch
    WEnd
     
    Func
    WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
        #forceref $hWnd, $iMsg
        Local $hWndFrom, $iIDFrom, $iCode
        $hWndFrom
    = $ilParam
        $iIDFrom
    = BitAND($iwParam, 0xFFFF) ; Low Word
        $iCode = BitShift($iwParam, 16) ; Hi Word
        Switch $hWndFrom
            Case $hCombo
                Switch $iCode
                    Case $CBN_SELCHANGE
                        $ind
    = _GUICtrlComboBoxEx_GetCurSel($hCombo)
                        If $ind <> -1 Then
                            $indAr = _GUICtrlComboBoxEx_GetItemParam($hCombo, $ind)
                            GUICtrlSetData($StatusBar, $a[$indAr][0] & ', ' & $a[$indAr][1] & ', ' & $a[$indAr][2])
                        EndIf
                EndSwitch
        EndSwitch
        Return
    $GUI_RUNDEFMSG
    EndFunc   ;==>WM_COMMAND

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 13:00 23-11-2011 | Исправлено: AZJIO, 15:50 23-11-2011
    frb_noname

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
    AZJIO
    Красиво, но уже сделал по простому : "01-апельсины" и т.д.

    Всего записей: 47 | Зарегистр. 03-11-2008 | Отправлено: 18:28 23-11-2011
    Free_Soft



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

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 21:05 23-11-2011
    AZJIO



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

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 22:42 23-11-2011
    winboard



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AutoIT может запустить драйвер eamon.sys ?
    Требуется заставить работать в режиме "реальной защиты" Eset Antivirus без инсталяции
    как сканер пашет )

    Всего записей: 156 | Зарегистр. 05-07-2010 | Отправлено: 02:20 24-11-2011
    frb_noname

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Переменная $name из элемента управления получает текстовое значение, которое может содержать апостроф-одинарную кавычку ('). Значение переменной вставляется в БД SQLite.
    Как экранировать эту кавычку, чтобы не выдавало ошибку при выполнении SQL на вставку записи ?
     
    $name=GUICtrlRead($combo_name)
                $name = StringReplace($name, "'", "&"'"&")  <--- как правильно экранировать ?
                .............
                  run_sqlite()
                   If Not _SQLite_Exec (-1, "insert into baza values (null,'" & $kab & "','" & $name & "');") = $SQLITE_OK Then
                       MsgBox(16, "SQLite Error", _SQLite_ErrMsg ())
                ..............

    Всего записей: 47 | Зарегистр. 03-11-2008 | Отправлено: 11:15 25-11-2011 | Исправлено: frb_noname, 11:19 25-11-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    frb_noname
    Сделай замену апострофа на два апострофа
    Цитата:
    StringReplace($sData, "'", "''")

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 12:11 25-11-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    как можно добавить в системную переменную PATH свое значение (пусть), а потом удалить его?

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 23:33 25-11-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    Функции EnvSet, EnvGet, EnvUpdate.
    Подробности в EnvSet
    Цитата:
    Переменные среды, установленные таким образом, доступны только из процессов, создаваемых AutoIt (Run, RunWait). После завершения работы AutoIt, все эти переменные перестают существовать.
     


     
    Обновлена RegExp v0.6
    Добавлен Ctrl+A, F1; Можно указать формат строки в буфер и т.д.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 00:04 26-11-2011 | Исправлено: AZJIO, 12:57 05-12-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как сделать проверку на ответ определенного TCP порта?

    Код:
    TCPStartUp()
    TCPListen('127.0.0.1', 1688, 100)
    If @error Then
       MsgBox(0, ', "Listen", 0)
    Else
       MsgBox(0, '', "Not Listen", 0)
    EndIf

    Так вроде работает, но при указании адреса напр. "192.168.0.12" говорит, что ответ есть, хотя локальная сеть вообще не установлена.

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 21:13 05-12-2011
    Kar1son

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть ListView c мультиселектом.
    если делать guictrlread(guictrlread(ListView)) то возвращается только тот элемент на котором стоит курсор а не все выбраные. как быть?

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



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

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 14:33 07-12-2011
    Kar1son

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

    Всего записей: 187 | Зарегистр. 23-08-2006 | Отправлено: 14:48 07-12-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Так как все же организовать проверку - есть отклик порта или нет?

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 19:26 07-12-2011
    V2driver



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

    ----------
    Переехал на krinkels.org

    Всего записей: 462 | Зарегистр. 01-02-2010 | Отправлено: 15:59 10-12-2011 | Исправлено: V2driver, 22:27 10-12-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