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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Cosmogor

    Ну а так : ?

    Код:
     
    $User = "01234567"  
     
    IsSymbol(3)
    IsSymbol(5)
    IsSymbol(8)
    ;.......................
    Func IsSymbol($ymbol)
       $iPos=StringInStr($User, $ymbol, 0)
       If $iPos Then MsgBox(4096, "Совпадение найдено","Символ : '" & $ymbol & "'" & @CRLF & "найден на " &  $iPos & " позиции.")
    EndFunc
     

    Всего записей: 79 | Зарегистр. 02-06-2007 | Отправлено: 10:58 09-09-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gregaz,
    А если $User = "7777777"?

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gregaz,madmasles, Zloy_Gelud, в принципе задача как таковая решена спасибо помогли

    Цитата:
    Cosmogor -- в AutoIt'e не шибко силен. Но кое-что накидал

    Zloy_Gelud, а вы лукавите , лично мне до вас, ох как далеко.
     
    Вот я тут тоже нашёл код , для сравнения.  

    Код:
    $st = "W"
    $Start = "QWERTYUIOPASDFGHJKLZXCVBNM"
    $Result = "0"
     
    For $i = 1 to 26 Step +1
    $StMid = StringMid ($Start, $i, 1)
    $StCompare = StringCompare($StMid, $st, 0)
    If $StCompare = -1 Then $StCompare = 1
    If $StCompare = 0 Then $Result = 1
    Next
     
    If $Result = 0 Then
    MsgBox(0, "", "несовпадает")
    Else
    MsgBox(0, "", "совпадает")
    EndIf

     

    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 14:46 09-09-2011 | Исправлено: Cosmogor, 15:02 09-09-2011
    DoctorLans

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

    Всего записей: 248 | Зарегистр. 07-10-2006 | Отправлено: 15:48 09-09-2011 | Исправлено: DoctorLans, 20:25 09-09-2011
    REEAL_CrAzY

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Существует ли функция для обновления гуи?  
    Тоесть, если в переменной появилось новое значение, надо чтобы гуй обновился. Конечно, это можно сделать GuiCtrlSetData(), но когда переменных штук 20, то весьма неудобно каждую обновлять таким образом. А так - жмакнул что-то вроде GuiUpdate() и всё обновилось.

    Всего записей: 42 | Зарегистр. 24-04-2011 | Отправлено: 19:13 09-09-2011
    AZJIO



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

    Цитата:
    вроде GuiUpdate() и всё обновилось

    любая типа GuiUpdate() как раз таки содержит тоже самое и даже больше чем надо, так как обновлять будет даже то что не нужно, а это время... просто запускай GuiCtrlSetData() в цикле, а идентификаторы держи в массиве.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 20:52 09-09-2011
    madmasles

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

    Цитата:
    Существует ли функция для обновления гуи?
    Можно так попробовать:
    Код:
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
     
    Dim $aLabels[7][2] = [[6],['часы'],['минуты'],['секунды'],['число'],['месяц'],['год']]
     
    $hGui = GUICreate('Update', 160, 10 + $aLabels[0][0] * 25, -1, -1, -1, $WS_CLIPCHILDREN)
    For $i = 1 To $aLabels[0][0]
        $aLabels[$i][1] = GUICtrlCreateLabel('', 40, 10 + ($i - 1) * 25, 30, 15)
        GUICtrlSetBkColor(-1, 0xFFFFFF)
        GUICtrlCreateLabel($aLabels[$i][0], 75, 10 + ($i - 1) * 25, 45, 15)
    Next
    _Update_My_Gui()
    GUISetState()
    AdlibRegister('_Update_My_Gui', 500)
     
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
        EndSwitch
    WEnd
     
    Func _Update_My_Gui()
        Local $a_Date[7] = [6, @HOUR, @MIN, @SEC, @MDAY, @MON, @YEAR]
        For $i = 1 To $aLabels[0][0]
            GUICtrlSetData($aLabels[$i][1], $a_Date[$i])
        Next
    EndFunc   ;==>_Update_My_Gui


    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 09:53 10-09-2011
    Cosmogor



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите как остановить таймер, кнопкой
    или щёлкнуть мышкой в поле GUICtrlCreateInput,
    хотя наверное последнее слишком уж сложно будет.
    Подробнее...

    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 20:47 10-09-2011 | Исправлено: Cosmogor, 19:25 11-09-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Cosmogor
    Цитата:
    del
    Только я хотел код посмотреть, а Вы его зачем-то удалили.
     

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 11:30 11-09-2011 | Исправлено: madmasles, 11:30 11-09-2011
    Cosmogor



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

    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 19:14 11-09-2011
    madmasles

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

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 10:27 12-09-2011
    Cosmogor



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles, вообще путёвый GUI получился
    плавно так появляется, и кнопкой можно остановить таймер.  
    Стрелки разные в нём, не знал что так просто можно  
    указать стрелку на кнопке.
    спасибо за понимание.
     
     
    Добавлено:
    Вот, наконец завершил свой проэкт.
    Суть его такова:
    Пишет файл oobeinfo.ini и перемещает его в папку
    @ScriptDir & "\$OEM$\$$\System32\oobe"
    Этот файл нужен для автоматической установки Win
    Там должны быть учетные записи пользователей.
    Есть автосоздание файла, и ручное редактирование.
    Основной упор делал на функцию _WriteUser()(запись файла)
    думаю что проще уже некуда его записать, или ошибаюсь
    Есть проверка на повтор учёток, поиск недопустимых символов в имени учёток.
    Код с очень подробными комментариями(это я для себя делал)
    Если весь мусор из него удалить, то получится файл не очень уж и большой.
    Код десятки раз тестил, ошибок не было, может кому и пригодится
    Это всё таки первая моя серьёзная, строго не судить...
     
     
    Подробнее...

    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 16:02 12-09-2011 | Исправлено: Cosmogor, 22:53 13-09-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Cosmogor,
    Если мне не изменяет память, то кроме данных о пользователях в oobeinfo.ini можно вносить и другие настройки.
    Записывать данные в oobeinfo.ini можно функциями IniWrite(), IniWriteSection().

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



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

    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 23:44 12-09-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Cosmogor
    Цитата:
    думал что только пользователей можно
    Посмотрите здесь и здесь.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 00:26 13-09-2011 | Исправлено: madmasles, 00:30 13-09-2011
    AZJIO



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

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 08:02 13-09-2011
    Cosmogor



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет всем
     
    Вот пытаюсь вернуть координаты GUI по отношению к рабочему столу,  
    запускаю код, по нажатию кнопки "ОК" координаты GUI нахожу,
    а вот дальше, чтобы запустить этот-же  GUI с новыми координатами невыходит.
    может кто-то делал что-то подобное.

    Код:
    #include <GUIConstantsEx.au3>
     
    _GUI()
    Func _GUI()
     
    Global $Form = GUICreate('My', 300, 110, $size[0], $size[1], -1)
    ; Global $Form = GUICreate('My', 300, 110, 1, 1, -1)
    $nButtonOK = GUICtrlCreateButton('ОК', 240, 20, 40, 20)
     
    GUISetState()
     
    While 1
    $Msg = GUIGetMsg()
    Switch $Msg
     
    Case $nButtonOK
    Global $size = WinGetPos($Form, "")
    GUIDelete($Form)
    ; MsgBox(262144, '', $size[0] & " - " & $size[1])
    ; ClipPut($size[0] & ", " & $size[1])
    _GUI()
     
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd
    EndFunc


    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 07:44 16-09-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Cosmogor,
    Попробуйте так:
    Код:
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <WinAPI.au3>
     
    Global $hGui, $nButtonOK, $aPos[4] = [50, 70, 300, 110], $aBtnPos[4] = [20, 20, 60, 30], $iXfr, $iYfr
     
    $iXfr = _WinAPI_GetSystemMetrics($SM_CXDLGFRAME) * 2
    $iYfr = _WinAPI_GetSystemMetrics($SM_CYDLGFRAME) * 2
    _Create_GUI($aPos, $aBtnPos, $hGui)
     
    While 1
        Switch GUIGetMsg()
            Case $nButtonOK
                $aPos = WinGetPos($hGui)
                $aBtnPos = ControlGetPos($hGui, '', $nButtonOK)
                _Create_GUI($aPos, $aBtnPos, $hGui)
            Case $GUI_EVENT_CLOSE
                Exit
        EndSwitch
    WEnd
     
    Func _Create_GUI($a_Win, $a_Btn, ByRef $h_Win)
        If $h_Win Then GUIDelete($h_Win)
        $h_Win = GUICreate('My', $a_Win[2] - $iXfr, $a_Win[3] - $iYfr, $a_Win[0], $a_Win[1], BitOR($WS_SIZEBOX, $WS_SYSMENU))
        $nButtonOK = GUICtrlCreateButton('ОК', $a_Btn[0], $a_Btn[1], $a_Btn[2], $a_Btn[3])
        GUICtrlSetResizing(-1, BitOR($GUI_DOCKLEFT, $GUI_DOCKTOP))
        GUISetState()
    EndFunc   ;==>_Create_GUI

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 08:59 16-09-2011
    Cosmogor



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles, работает!
    Оказывается GUICreate можно засунуть в функцию и без While. Спасиб.

    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 10:57 16-09-2011
    Netros



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    привет всем, поможите плиз....как написать автоит скриптик который откроет/экспортирует таблицу в базе *.mdb  вот открывается база и в нем видны таблицы, и чтоб скриптик выбрал нужную тебе таблицу и экспортировал его допустим на диск с:\

    Всего записей: 18 | Зарегистр. 16-03-2009 | Отправлено: 16:11 16-09-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