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

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите плиз аналог StringIsDigit().  
    Если сделать так:
     
    ...
    $iA = "-5"
    StringIsDigit ($iA)
    ...
     
    то StringIsDigit() даёт 0. А нужно 1.  
    IsInt() тоже не подходит, как как в $iA может быть число, например, 3.14

    Всего записей: 42 | Зарегистр. 24-04-2011 | Отправлено: 14:11 28-05-2011
    ViSiToR



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

    Код:
    IsNumber(Number($iA))

     
    ?
     
    Добавлено:
    Или так:
     

    Код:
    StringRegExp($iA, "^-?[\d\.]*$")


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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 14:45 28-05-2011
    REEAL_CrAzY

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

    Всего записей: 42 | Зарегистр. 24-04-2011 | Отправлено: 18:38 28-05-2011
    Jaksilik

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Недавно возникла проблема - домашние удалили важную инфу.Вопрос:- Как сделать чтоб при нажатии правой кнопки мыши, не была выделена строка "удалить".Может это как-то можно сделать с помощью Аутоита.Вобщем я хочу отключить эту опцию в Виндоусе - чтоб детские руки не творили на моем компьютере чудеса.

    Всего записей: 24 | Зарегистр. 18-04-2011 | Отправлено: 13:53 29-05-2011
    Leagnus

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Тогда прийдётся реализовывать и перехват Shift+Del.

    Всего записей: 148 | Зарегистр. 12-09-2008 | Отправлено: 15:12 29-05-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jaksilik
    Это не решает проблему, почему ты думаешь именно этот пункт повлиял? До него и добраться тяжело, проще Del и Enter нажать. Можно перетащить в корзину. А вообще не знаю, отключается ли этот пункт в реестре, но "Поиск" и некоторые пункты лично я удаляю, смотри в реестре "HKCR\*", "HKCR\Folder", "HKCR\Directory", "HKCR\Drive". Сделай копии разделов и удаляй по одному пункту чтобы выяснить какой влияет. К автоиту это конечно же отношение не имеет.
    А доступ закрыть: добавить нового пользователя для детей и закрыть доступ как папкам по аналогии с "System Volume Information", но указав себе права от своего аккаунта.

    ----------
    home

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 17:55 29-05-2011
    Jaksilik

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

    Цитата:
    "HKCR\*", "HKCR\Folder", "HKCR\Directory", "HKCR\Drive".  

     
    AZJIO У меня Виндоус XP я не нашел - 1)HKEY_CLASSES_ROOT 2)HKEY_CURRENT_USER 3)HKEY_LOCAL_MASHINE 4)HKEY_USERS 5)HKEY_CURRENT_CONFIG
    Так в какой же директории находится, подскажите пожалуйста хотя бы приблизительно.

    Цитата:
    по теме

    Спасибо AZJIO за ссылку.Признаюсь я не листал ваш сайт.

    Всего записей: 24 | Зарегистр. 18-04-2011 | Отправлено: 18:37 29-05-2011 | Исправлено: Jaksilik, 19:28 29-05-2011
    AZJIO



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

    ----------
    home

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 18:54 29-05-2011
    LaVas_ki

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    HotKeySet ("i","Inventory")
    while 1
        sleep (100)
    WEnd
     
    Func Inventory()
        Send ("{TAB}")
    EndFunc
     
    простой скрипт, но в игре хоткей не работает (в винде етествеено работает)
    почему и как поправить?
    замечал что некоторые игры блокируют хоткеи
     

    Всего записей: 1465 | Зарегистр. 03-08-2003 | Отправлено: 05:28 31-05-2011
    Sinclair83

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    спецы, есть задачка. помогите разрешить. имеются 2 пк, связанные между собой модемами xdsl по выделенке. на обоих установлена ос xp. на одном из них настроено "подключение к удаленному рабочему столу". на удаленном пк присутствуют 2 учетные записи "администратор" и "пользователь". суть вопроса: после завершения сеанса связи на удаленной машине наблюдается окно выбора пользователя. следовательно нужно принудительно выбирать под какой учеткой дальше работать, а желательно бы автоматический вход в учетную запись "пользователь". возможно?

    Всего записей: 758 | Зарегистр. 07-01-2009 | Отправлено: 07:31 03-06-2011
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sinclair83, думаю надо копать в сторону Два одновременных сеанса в Windows XP - Terminal Server

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 09:34 03-06-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обновил утилитку RegExp, добавлен чекбокс "Вычислить" позволяющий в регулярке использовать макро, например @CRLF

    ----------
    home

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 11:02 03-06-2011
    LaVas_ki

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

    Всего записей: 1465 | Зарегистр. 03-08-2003 | Отправлено: 20:45 03-06-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    Со страницы закачки AutoIt3Wrapper скачивается версия 2.0.1.24, а отсюда можно скачать 2.0.2.2
    Добавлена команда #AutoIt3Wrapper_Compile_both компилирует сразу x86 и x64. В директивах ещё появилась опция каталога AutoIt3, можно указать каталог с нужной версией.
     
    Я недавно искал опцию обфускатора чтобы заменить переменные и имена функций на короткие в сочетании с удалением неиспользуемых, нашёл в скрипте UEZ
    Цитата:
    #AutoIt3Wrapper_Run_Obfuscator=y
    #Obfuscator_Parameters=/sf /sv /om /cs=0 /cn=0
    #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_Obfuscated.au3"


    ----------
    home

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 04:12 04-06-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 04:12 04-06-2011
    Цитата:
    Со страницы закачки AutoIt3Wrapper скачивается версия 2.0.1.24, а отсюда можно скачать 2.0.2.2

    Это бета, на странице закачки есть ссылка на бета версий.
     

    Цитата:
     В директивах ещё появилась опция каталога AutoIt3, можно указать каталог с нужной версией.

    Она уже давно есть, просто не документирована.
     


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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обновил утилиту ColorText, заменил объект HTML на RichEdit. Появилась возможность сохранять текст в RTF.
     
    Столкнулся с проблемой функция выбора шрифта _ChooseFont в 4-ом параметре содержит указание на умолчальные установки жирного шрифта, но при флаге True в открытом диалоге галочка жирного шрифта не устанавливается. Перезагружался и несколько раз проверял все параметры, не устанавливается ни в какую... WinXP SP3 (можно проверить в утилите ColorText).

    ----------
    home

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 21:26 05-06-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 21:26 05-06-2011
    Цитата:
    при флаге True в открытом диалоге галочка жирного шрифта не устанавливается

    А кто тебе сказал что там должно быть bool-значение?
     
    Там должно быть значение от 0 до 1000, это упоминается в справке.
     

    Код:
    #include <Misc.au3>
     
    _ChooseFont("Courier New", 10, 0, 800)


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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 22:35 05-06-2011
    sumoto2

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста почему не работает данный пример
     
    HotKeySet("{down}", "captureUP")
     
     
    Func captureUP()
        Send ("{down}")
        EndFunc
     
    While 1
        Sleep(100)
    WEnd

    Всего записей: 1 | Зарегистр. 05-08-2009 | Отправлено: 22:49 06-06-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sumoto2 22:49 06-06-2011
    Цитата:
    почему не работает данный пример

    Почему не работает, всё прекрасно работает. При нажатий Down запускается функция «captureUP», которая нажимает Down, который в свою очередь запускает снова функцию «captureUP», которая нажимает Down, который в свою очередь запускает снова функцию «captureUP», которая...
    Ну вобщем смысл понятен?
    Это называется рекурсия.
     
    Я так понимаю что нужно просто отловить нажатие Down и позволить ему быть нажатым, тогда так:
     

    Код:
    HotKeySet("{down}", "captureUP")
     
    While 1
        Sleep(100)
    WEnd
     
    Func captureUP()
        HotKeySet(@HotKeyPressed)
        Send("{down}")
        HotKeySet(@HotKeyPressed, "captureUP")
    EndFunc


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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 23:32 06-06-2011
    frb_noname

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть элемент Listview и несколько элементов Input, значения которых соответствуют значениям определенных колонок списка.
     
    Как сделать, чтобы при смене активной строки списка (хоть кликом мышки хоть клавиатурой) изменялось значение соответствующих инпутов ? Как это сделать например в следующем коде (для запуска нужен sqlite3.dll ) :
     

    Код:
     
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <sqlite.au3>
    #include <guilistview.au3>
    #include <GuiConstants.au3>
    $Form1_1 = GUICreate("Справочник телефонов", 679, 365, 135, 114)
    $Group1 = GUICtrlCreateGroup("Поиск в базе", 2, 4, 334, 326)
    $List = GUICtrlCreateListView("Код|Абонент|Номер", 8, 66, 321, 253)
    _GUICtrlListView_SetColumnWidth($list,0,0)
    _GUICtrlListView_SetColumnWidth($list,1,217)
    _GUICtrlListView_SetColumnWidth($list,2,100)
    $context = GUICtrlCreateContextMenu($list)
    $context1 = GUICtrlCreateMenuItem("Удалить",$list)
    $for_search = GUICtrlCreateInput("", 8, 20, 201, 24)
    $But_search = GUICtrlCreateButton("Поиск !", 213, 20, 65, 25)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $But_all = GUICtrlCreateButton("Все", 284, 20, 43, 25)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel("Результаты поиска :", 11, 50, 109, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Просмотр и правка", 339, 4, 333, 326)
    $Input_abon = GUICtrlCreateInput("", 347, 66, 214, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Edit_descr = GUICtrlCreateEdit("", 346, 152, 321, 170)
    $Label1 = GUICtrlCreateLabel("Абонент :", 348, 50, 52, 13)
    $Label2 = GUICtrlCreateLabel("Дополнительно :", 347, 138, 90, 12)
    $Label3 = GUICtrlCreateLabel("Номер :", 348, 95, 44, 14)
    $Input_phone = GUICtrlCreateInput("", 347, 109, 153, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $But_edit = GUICtrlCreateButton("Править", 580, 20, 83, 25)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $But_new = GUICtrlCreateButton("Новый абонент", 348, 20, 127, 25)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $But_add = GUICtrlCreateButton("Сохранить", 482, 20, 91, 25)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    #EndRegion ### END Koda GUI section ###
     
    GUISetState(@SW_SHOW)
    Dim $tbl="baza", $base="phone_base.db", $rez, $rows, $columns
     
    if not FileExists(@ScriptDir & "\" & $base) Then
        run_sqlite()
        make_structure()
        stop_sqlite()
    Else
    EndIf
    run_sqlite()
    select_all()
    stop_sqlite()
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
     
        Case $GUI_EVENT_CLOSE
            Exit
     
        Case $But_new
        GUICtrlSetData($Input_abon,"","")
        GUICtrlSetData($Input_phone,"","")
        GUICtrlSetData($Edit_descr,"","")
     
        Case $But_add
            run_sqlite()
            ;MsgBox(0,"","insert into baza '" & GUICtrlRead($Input_abon) & "','" & GUICtrlRead($Input_phone) & "','" & GUICtrlRead($Edit_descr) & "';"))
            If Not _SQLite_Exec (-1, "insert into baza values (null,'" & GUICtrlRead($Input_abon) & "','" & GUICtrlRead($Input_phone) & "','" & GUICtrlRead($Edit_descr) & "');") = $SQLITE_OK Then _
                MsgBox(16, "SQLite Error", _SQLite_ErrMsg ())
                _SQLite_Exec (-1, "commit;")
            select_all()
            stop_sqlite()
     
        Case $But_all
            run_sqlite()
            select_all()
            stop_sqlite()
     
        Case $context1
            run_sqlite()
            delfrombaza()
            stop_sqlite()
     
    EndSwitch
    WEnd
     
     
    Func run_sqlite()                                                   ;=====
    _SQLite_Startup ()                                                   ;=====
    If @error > 0 Then                                                   ;=====
        MsgBox(16, "SQLite Error", "SQLite.dll Can't be Loaded!")       ;=====
        Exit - 1                                                       ;=====
    EndIf                                                               ;=====
            _SQLite_Open ($base)                                            ;=====
                If @error > 0 Then                                            ;=====
                    MsgBox(16, "SQLite Error", "Can't Load Database!")        ;=====
                Exit - 1                                                    ;=====
                EndIf                                                            ;=====
     
    EndFunc ;==========================>>> Run_Sqlitr =================;=====
     
     
    Func make_structure()
    If Not _SQLite_Exec (-1, "CREATE TABLE if not exists [" & $tbl & "] (" _
                    & "[kod] INTEGER  PRIMARY KEY AUTOINCREMENT NOT NULL," _
                    & "[abon] VARCHAR(255)  UNIQUE not NULL," _
                    & "[nomer] VARCHAR(255) not null," _
                    & "[descript] VARCHAR(500) null);") = $SQLITE_OK Then _
                MsgBox(16, "SQLite Error", _SQLite_ErrMsg ())
    EndFunc ;============================>>> make_structure ==========================
     
     
    ;===================================== stop_sqlite =====================;=====
    Func stop_sqlite()                                                        ;=====
    _SQLite_Close()                                                            ;=====
    _SQLite_Shutdown()                                                        ;=====
    EndFunc ;==========================>>> stop_Sqlite =====================;=====
     
     
    Func select_all() ;================================= ВСЕ ========================================
    _GUICtrlListView_DeleteAllItems($list)
    $tbl_rez = _SQLite_GetTable2d (-1, "SELECT kod, abon, nomer FROM baza order by abon;", $rez, $rows, $columns)
                If $tbl_rez = $SQLITE_OK Then
                    _SQLite_Display2DResult($rez)
                    ;|=========== занесение данных двухмерного массива в список формы =================================
                    For $x=1 To $rows
                        GUICtrlCreateListViewItem($rez[$x][0] & "|" & $rez[$x][1] & "|" & $rez[$x][2], $list)
                    Next
                    ;|===========================================================================================
                Else
                    MsgBox(16, "SQLite Error: " & $tbl_rez, _SQLite_ErrMsg ())
                EndIf
    EndFunc
     
    Func delfrombaza()
        if MsgBox(4,"","Действительно удалить запись ?")=6 Then
    ;====================== получение уникального кода записи из активной строки списка ====================
    $kodrecno=guictrlread(GUICtrlRead($list))
    $kodrecno=Stringleft($kodrecno,stringInStr($kodrecno,"|",2,1)-1)
    ;============ удаление файла из базы по уникальному номеру записи ================================
    If Not _SQLite_Exec (-1, "delete from baza where kod=" & $kodrecno & ";") = $SQLITE_OK Then _
               MsgBox(16, "SQLite Error", _SQLite_ErrMsg ())
    select_all()
    Else
    EndIf
     
    EndFunc ;==============>>>>>> openfile()
     

    Всего записей: 47 | Зарегистр. 03-11-2008 | Отправлено: 09:13 10-06-2011 | Исправлено: frb_noname, 11:17 10-06-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