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

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



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

    Цитата:
    peculiar, вот почитайте, пож..  
     
    Ссылка  
     
     
    Цитата:ну а на крайний случай используйте любой Flash Player, либо просто перекиньте SWF-урок в окно браузера для просмотра  
     
     
    По-моему, это хоть и полумера, но выход из ситуации?  
     
    Здесь ещё гляньте:  
    Ссылка  
     
    Преобразовывать Flash анимации (*.swf) в видеоформат *.avi.  
    Ссылка

     
    Если открывать флешплеером - работает, но это не выход из ситуации, так как курсы предназначены для чайника, и для этих людей удобнее работать через оболочку - другим способом - пропадает эффективность обучения, потому что чтобы запустить ролик у пользователя уйдет столько сил что он забудет и что хотел включить. Было бы интересно решение именно этой проблемы. Тут на свежеустановленных виндах не хватает каких-то компонентов. Было бы интересно каких именно. Установка флешплеера с адобе ком, установка макромедиа флешпллера, уставновка всех дотнетов, java не решила проблему

    Всего записей: 460 | Зарегистр. 09-12-2005 | Отправлено: 14:08 07-03-2011
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    peculiar, это вроде моя оболочка для флеша. Уроки от teachshop? Проблема 100%, что у тебя не установлен флешплеер 10 версии. то что ты устанавливал с сайта адоба = плеер для других браузеров. тебе нужно установить версию для осла (IE) ActiveX компонет. Качается тамже.
    Моя вина, лень было сделать проверку на наличие флешплеера в системе.

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 14:34 07-03-2011 | Исправлено: ynbIpb, 14:41 07-03-2011
    peculiar



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ну спасибо огромное!!! Я уже около месяца ищу в чем проблема. Ослом не пользуюсь флеш плеер качал для опера - вот оно и не запускалось... Спасибо еще раз!!! руборд таки рулит !

    Всего записей: 460 | Зарегистр. 09-12-2005 | Отправлено: 23:00 07-03-2011
    JimmyN

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые знатоки в процессе написания скрипта возникла проблема, пишу в EventMode, соответственно каждой кнопочке назначена своя функция. Некоторые функции цикличные. Когда ни одна из функций не запущена закрыть GUI можно с помощью назначения простенькой функции на кнопочку крестик  
     
    Func Exiting()
        If @GUI_WINHANDLE = $mainwindow Then  
        Exit (0)
    ElseIf @GUI_WINHANDLE = $clickwindow Then  
        GUISetState(@SW_HIDE, $clickwindow)
    ElseIf @GUI_WINHANDLE = $setwindow Then  
        GUISetState(@SW_HIDE, $setwindow)
     
    EndIf
    EndFunc
     
    Но вот когда какая либо функция запущена такая штука не прокатывает... Наверняка это делается очень просто. Заранее спасибо)

    Всего записей: 2 | Зарегистр. 08-03-2011 | Отправлено: 00:58 08-03-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    JimmyN 00:58 08-03-2011
    Цитата:
    когда какая либо функция запущена такая штука не прокатывает

    Обычно это делается так (вызов функций с циклом вешается на главный цикл):

    Код:
    #include <GUIConstantsEx.au3>
     
    Global $iLoop
     
    Opt("GUIOnEventMode", 1)
     
    $hGUI = GUICreate("Test Script", 300, 200)
    $nButton = GUICtrlCreateButton("Button", 20, 40, 60, 20)
    GUICtrlSetOnEvent(-1, "_Main_Events")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Main_Events")
     
    GUISetState(@SW_SHOW, $hGUI)
     
    While 1
        Sleep(10)
     
        If $iLoop Then
            $iCounter = 0
     
            While $iLoop
                $iCounter += 1
                ConsoleWrite("Looping... " & $iCounter & @LF)
                Sleep(10)
            WEnd
        EndIf
    WEnd
     
    Func _Main_Events()
        Switch @GUI_CtrlId
            Case $GUI_EVENT_CLOSE
                Exiting()
            Case $nButton
                $iLoop = Not $iLoop
        EndSwitch
    EndFunc
     
    Func Exiting()
        If @GUI_WINHANDLE = $hGUI Then
            Exit
        ;ElseIf @GUI_WINHANDLE = $clickwindow Then
        ;    GUISetState(@SW_HIDE, $clickwindow)
        ;ElseIf @GUI_WINHANDLE = $setwindow Then
        ;    GUISetState(@SW_HIDE, $setwindow)
        EndIf
    EndFunc


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

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я в этом деле немного новичок нельзя ли пояснить... у меня 3 функции, запускаются тремя разными кнопками. в примере Func _Main_Events() выполняет роль одной из функций или её нужно добавлять помимо, и где в таком случае должен быть основной код функции, а если  
     
     Switch @GUI_CtrlId  
            Case $GUI_EVENT_CLOSE  
                Exiting()  
            Case $nButton  
                $iLoop = Not $iLoop  
        EndSwitch  
     
    нужно добавлять в каждую функцию то что в таком случае указывать в GUISetOnEvent($GUI_EVENT_CLOSE, "_Main_Events")???
     
    И ещё вопрос у меня скрипт отправляет сообщения в ListBox, как задать цвет и стиль текста для одного сообщения а не сразу для всего ListBox
     
    сообщения такого типа: GUICtrlSetData(ListBoxID, @HOUR & ":" & @MIN & ":" & @SEC & "Текст")
     
    и у меня проблема с функцией ControlSend. Она упорно высылает 2 вместо @, ну и периодически путает другие символы.
    я увеличил таймауты
     
    AutoItSetOption("SendKeyDelay", 20)
    AutoItSetOption("SendKeyDownDelay", 20)
     
    но это не помогло пришлось делать так
     
    ClipPut($pass)
    Sleep(500)
    ControlSend($winname, "", 0, "{CTRLDOWN}v{CTRLUP}")
     
    может есть какое то более простое решение, (язык по умолчанию английский в системе)

    Всего записей: 2 | Зарегистр. 08-03-2011 | Отправлено: 02:02 08-03-2011 | Исправлено: JimmyN, 02:41 08-03-2011
    smiker2007



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребята, подскажите, есть ли скрипт AutoIt для автозапуска (открытие, запуск проверки, закрытие) DrWeb CureIt в защищенном режиме на клиентских машинах?

    Всего записей: 226 | Зарегистр. 09-04-2009 | Отправлено: 10:34 09-03-2011
    kosjachok



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

    Цитата:
    DrWeb CureIt в защищенном режиме на клиентских машинах?

    Не пробовал с CureIt , но на каспере с защитой от эмуляции нажатия клавиш/мыши -  сталкивался...
    Подозреваю что в защищенном режиме CureIt  тоже  режется любая эмуляция клавиш/мыши...  
    НО - даже если так - то не все потеряно: можно использовать командную строку CureIt   http://www.freedrweb.com/cureit/cl/?lng=ru  - хоть через батники, хоть через AutoIt

    Всего записей: 689 | Зарегистр. 18-08-2004 | Отправлено: 17:38 09-03-2011 | Исправлено: kosjachok, 17:40 09-03-2011
    ildar1



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые специалисты, подскажите пожалуйста, есть ли способ в autoit копировать файлы, уже открытые для чтения и записи? Копирование через FileCopy возвращает 0, чтение через FileOpen( $FileName, 0 возвращает -1.

    Всего записей: 271 | Зарегистр. 23-12-2005 | Отправлено: 14:10 11-03-2011
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Видимо без сторонних средств нельзя. Может как-то можно скомбинировать с Unlocker ?

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Color marking resistor - утилита для определения сопротивления по маркировке резистора (для радиолюбителей). Хотя погуглил и нашёл утилитки на порядок лучше.

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 18:45 14-03-2011 | Исправлено: AZJIO, 23:52 14-03-2011
    tre674hi

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток!
    Только сразу не пинайте,может где и написано,но честно говоря я не нашёл,хотя и просмотрел более 50 страниц форума.
    Вот написал скрипт на AutoIT,а после компиляции он будет работать ток на x32 или x64 процессорах,который будет указан при компиляции.
    Нету ли какой нибудь проги для компиляции скрипта,для того что бы после компиляции скрипта,он работал не зависимо от того какой архитектуры процессор x32 или x64?
    Если нету,то можно ли какой нибудь скрипт на том же VBS придумать,который бы сам распознавал какая архитектура процессора и в зависимости от этого уже запускал тот или иной файл.
    К примеру машина на которой запускается скрипт x32 значить запустится файл 1.exe,в противном случае запустится 2.exe.
     
     Буду очень благодарен.

    Всего записей: 1 | Зарегистр. 15-03-2011 | Отправлено: 23:01 15-03-2011 | Исправлено: tre674hi, 23:07 15-03-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tre674hi,
    Большинство 32 скриптов работают на 64, но если надо по разному, то можно так попробовать:
    Код:
    If @OSArch == 'X86' Then ;32
        Run(@ScriptDir & '\32.exe')
    Else
        Run(@ScriptDir & '\64.exe')
    EndIf


    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 00:14 16-03-2011
    5peciali5t



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    имеется задача: понизить потребление оперативной памяти различными процессами.
    где то в интернете был нарыт скрипт, который это делает применительно к указанным в нем процессам
     
    скрипт не учитывает множествественность процессов и понижает потребление памяти только первыму попавшимуся в списке процессу, игнорируя остальные (как например несколько открытых окон internet explorer порождает несколько процессов iexplore.exe или масса жадных системных сервисов svchost.exe)
     
    ищутся грамотные в языке autoit люди, которые способны довести скрипт до состояния, в котором он будет понижать потребление памяти, учитывая множественность процессов.
     

    Код:
    #NoTrayIcon
     
    Global Const $interval = 2000 ;
     
    Global $list = "Skype.exe|skypePM.exe|firefox.exe|opera.exe|iexplore.exe|icq.exe|svchost.exe|msmpeng.exe|msseces.exe|explorer.exe"
    Global $processlist = StringSplit($list, "|")
     
    While 1
        For $i = 1 To UBound($processlist) - 1
            $pid = ProcessExists($processlist[$i])
            If $pid Then _ReduceMemory($pid)
        Next
        _ReduceMemory();
        Sleep($interval)
    WEnd
     
    Func Bye()
        Exit
    EndFunc   ;
     
    Func _ReduceMemory($i_PID = -1)
        If $i_PID <> -1 Then
            Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID)
            Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle[0])
            DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle[0])
        Else
            Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
        EndIf
     
        Return $ai_Return[0]
    EndFunc   ;

     
    обращаться в аську 560361

    Всего записей: 1472 | Зарегистр. 17-07-2009 | Отправлено: 00:17 16-03-2011 | Исправлено: 5peciali5t, 00:26 16-03-2011
    saikspaik

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Возможно оффтоп, но все же это самое точное место для вопроса.
    Существует ли нечто подобное AutoIt, чтобы маленькое, удобное, чтобы можно было работать с GUI и особенно компиляция в exe?
     
    5peciali5t
    У тебя этот скрипт работает? Как ты проверяешь расход памяти, а то я попробовал что в диспетчере задач, что в process explorer памяти как было, так и осталось.

    Всего записей: 255 | Зарегистр. 08-07-2007 | Отправлено: 11:29 16-03-2011
    5peciali5t



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

    Цитата:
    У тебя этот скрипт работает? Как ты проверяешь расход памяти

    работает. на глаз видно.
    скайп был 70-100 метров после 5-10
    opera на 9 вкладок 134 метра - стала 2-5 метров
    отдельно скомпиленное и без лишних ресурсов
    http://rghost.ru/4793436

    Всего записей: 1472 | Зарегистр. 17-07-2009 | Отправлено: 13:32 16-03-2011
    kosjachok



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

    Цитата:
    Существует ли нечто подобное AutoIt, чтобы маленькое, удобное, чтобы можно было работать с GUI и особенно компиляция в exe?  

    Есть - PureBasic

    Всего записей: 689 | Зарегистр. 18-08-2004 | Отправлено: 13:35 16-03-2011
    Tim72



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    saikspaik
    5peciali5t
    Оптимизаторы памяти для Windows рекомендуется к прочтению...

    Всего записей: 2480 | Зарегистр. 16-02-2002 | Отправлено: 15:20 16-03-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Tim72,
    MSDN Library.
    Функция _WinAPI_EmptyWorkingSet() есть в библиотеке WinAPIEx.au3.
    Мнение Автора WinAPIEx.au3.

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

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

    Цитата:
    Оптимизаторы памяти для Windows рекомендуется к прочтению...

    Вот и я о том же.
    Я еще раньше пробовал оптимизаторы, и как показывает практика - они не работают.
     
    5peciali5t
    А общее количество памяти уменьшается?
     
    kosjachok

    Цитата:
    Есть - PureBasic

    Спасибо, присмотрюсь поближе

    Всего записей: 255 | Зарегистр. 08-07-2007 | Отправлено: 16:57 16-03-2011 | Исправлено: saikspaik, 17:10 16-03-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