Ru-Board.club
← Вернуться в раздел «Программы»

» AutoIT

Автор: AddXL
Дата сообщения: 24.11.2005 12:20

AutoIt3


Домашняя страница: http://www.autoitscript.com
Страница загрузки: http://www.autoitscript.com/autoit3/downloads.php

Описание:

Цитата:
AutoIt v3 - это язык для написания сценариев, напоминающий BASIC. Основным его назначением является автоматизация работ с Windows GUI (графическим интерфейсом пользователя MS Windows). Для выполнения этой сложной задачи предоставляется комбинация испытанных методов, включающих в себя - симуляцию нажатий комбинаций клавиш клавиатуры, перемещения указателя мыши и управления окнами и его визуальными элементами. Как показывает практика, эти "приводные ремни" весьма эффективны для получения работающих решений в ситуациях, когда другие стандартные средства (например, VBScript и SendKeys) оказываются бессильны.
Умеет он очень и очень многое! Бесплатный.


Помощь по AutoIT:
Справку на русском (и не только) вы всегда(?) сможете найти тут
Справочник по командам rundll32
Русский справочник по API-функциям
[more=Помощь по Регулярным выражениям]
Книга от Дж. Фридл - Регулярные выражения. Библиотека программиста [издание первое], [издание второе].
Ресурс посвящённый Регулярным выражениям.
[/more]
AutoIt v3: Your Quick Guide (652 КБ) - Ваш быстрый гид в мир AutoIt-а (книга в формате pdf)

Инструметы для AutoIt:
AutoIt3Wrapper [Страница закачки] - Программа для компилляции скрипта с дополнительными возможностями (добавление иконки, описании и т.п).
Koda (724 Kb) - Визуализация работы с GUI - аналог Visual Basic.
CodeWizard (400 Kb) - нечто простенькое на вариант Koda.
AutoItMacroGenerator (34 Kb) - Записывает в реальном времени действия пользователя в AutoIt код.
ScriptWriter (78 Kb) - Аналог AutoItMacroGenerator.
API Constants (1042 Kb) - Утилита для просмотра всех констант API-Функции и не только.
Страница закачки утилит которые идут в отдельной поставке редактора SciTE.
AutoIt меню для браузера Opera

Готовые скрипты и программы с открытым кодом на AutoIt:
Коллекция AutoIt скриптов от Sanja Alone
Коллекция скриптов на http://msfn.org
Пополняющийся со временем сайт с полезными утилитами и функциями на AutoIt
Desktop Icons Restorator - Скрипт-Программа для сохранения/восстановления позиции иконок р.стола.
CaptureIt - Утилита предназначена для захвата изображений с вашего экрана.
SwitchIt - Скрипт для конвертирования выделенного текста
Скрипт расскраски кода AutoIt для публикации в форумах

Общие вопросы и решения на Autoit:
Обработчик скриптов добавляющий отладчик (debugger)
Интеракция между несколькими скриптами
Пример использование интеракции между скриптами - Добавление элементов GUI с внешнего модуля
Копирование большого файла с отображением данных прогресса
Создание динамического меню в Tray Icon (значёк в области уведомления)
Пример создания своего мастера (Wizard)
Метод позволяющий запускать код VBS не создавая временных файлов
Описание функции GUIRegisterMsg()
Пример перехвата вводимых символов с клавиатуры
Пример деактивирования TabItem
Пример вывода лога в Edit-поле (с поддержкой форматирования текста)
Пример остановки/начало выполнения скрипта + Слежение за б.обмена с заменой неподдерживаемых в имени файла символов
Пример использования меню с иконками (ModernMenu.au3) -> Список программ в меню значка в системном трее

[more=Как по PID процесса вычислить путь запускаемого файла]
$pid = ProcessExists("mirc.exe")
MsgBox(0, '', _ProcessGetLocation($pid))

Func _ProcessGetLocation($iPID)
Local $aProc = DllCall('kernel32.dll', 'hwnd', 'OpenProcess', 'int', BitOR(0x0400, 0x0010), 'int', 0, 'int', $iPID)
If $aProc[0] = 0 Then Return SetError(1, 0, '')
Local $vStruct = DllStructCreate('int[1024]')
DllCall('psapi.dll', 'int', 'EnumProcessModules', 'hwnd', $aProc[0], 'ptr', DllStructGetPtr($vStruct), 'int', DllStructGetSize($vStruct), 'int_ptr', 0)
Local $aReturn = DllCall('psapi.dll', 'int', 'GetModuleFileNameEx', 'hwnd', $aProc[0], 'int', DllStructGetData($vStruct, 1), 'str', '', 'int', 2048)
If StringLen($aReturn[3]) = 0 Then Return SetError(2, 0, '')
Return $aReturn[3]
EndFunc
[/more]
[more=Получение IP по подключенному сокету]
; Function to return IP Address from a connected socket.
;----------------------------------------------------------------------
Func SocketToIP($SHOCKET)
Local $sockaddr = DLLStructCreate("short;ushort;uint;char[8]")

Local $aRet = DLLCall("Ws2_32.dll","int","getpeername","int",$SHOCKET, _
"ptr",DLLStructGetPtr($sockaddr),"int_ptr",DLLStructGetSize($sockaddr))
If Not @error And $aRet[0] = 0 Then
$aRet = DLLCall("Ws2_32.dll","str","inet_ntoa","int",DLLStructGetData($sockaddr,3))
If Not @error Then $aRet = $aRet[0]
Else
$aRet = 0
EndIf

$sockaddr = 0

Return $aRet
EndFunc

;вызов функции через "Dim $szIP_Accepted = SocketToIP($ConnectedSocket)"
[/more]

Отдельные функции (UDF):
Функции Отключения/Подключения к Интернету
Функция проверки подключения к Интернету
Функция для получения структуры директории включая подкаталоги
Функция для поиска в файлах
Функция для смены разрешения экрана
Функция для смены раскладки клавиатуры в определённом окне
Функция для получения списка процессов с допол. инфой (путь к исполняемому файлу и др.)
Функции и пример для отображения детального процесса закачки файла
Функция (и пример использования) для отображения стильного диалога “О Программе” - [Усовершенствованная версия]
Функция возвращает пронумерованный список всех классов определённого окна + функция получения хендлов для этих классов
Функция для получения заголовка окна (или его идентификатора) по ID процесса (PID)
Функция _StringIsUTF8Format() + _StringToUTF() - Первая проверяет если строка содержится в UTF-8 формате, вторая преобразовывает строку в UTF-8 формат
Функция _FileOpenDialogEx - Возвращает массив (или строку) с полными путями к выбранным файлам
_AU3_Lib* Функции - Предназначены для обработки подключаемых библиотек через #include
Функция транслитерации строки
Расширенная библиотека для работы с реестром

За шапкой следит ViSiToR
Автор: spol81
Дата сообщения: 26.11.2005 21:46
Да программка действительно интересная
официальная страничка h p://www.autoitscript.com/autoit3/
Русская документация h p://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/russian-v3.1.0.zip
Сама программка h p://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe

Немного скриптов от sanja-alone
h p://sanjaalone.h15.ru/au3.php
Автор: Denis_Kokyev
Дата сообщения: 08.12.2005 00:35
AddXL
Может тут кто поможет:
hxxp://forum.oszone.net/showthread.php?p=377687&posted=1#post377687
Автор: AddXL
Дата сообщения: 08.12.2005 14:29
Маленько освоил PE Explorer и много вопросов исчезли. Теперь авто-скрипт имеет собственную иконку, в инфе подправил авторство программы, дизассемблировал и перекрутил код скрипта на сколько терпения хватило - и о чудо ! Имею практически свою программ под Win написанную на Autoit-языке что-ли... До этого страдал на VB6 а нужно в VB было то в основном операции с клавой и мышкой, Autoit тут мне подошел идеально для моих целей. А ответ на вопрос кейлогера на Autoit нашелся на их оф.форуме, да еще и с исходниками... Осталось уменьшать размер проги..... Думаю PE и тут мне в помощь.........
Автор: Sergio12305
Дата сообщения: 27.03.2006 20:51
У меня вопрос по AutoIt. Как скомпилировать скрипт, который будет включать в себя *.exe , *.mp3 , *.jpg , и т.д. (все в одном exe-файле). Функция "Fileinstall" добавляет любые файлы к сценарию. А как запустить их внутри сценария ? Заранее спасибо. Sergio12305@mail.ru
Автор: Melkosoft
Дата сообщения: 28.03.2006 14:01
Sergio12305

Цитата:
Как скомпилировать скрипт, который будет включать в себя *.exe , *.mp3 , *.jpg , и т.д. (все в одном exe-файле)

Стандартным образом, то есть точно также, как все остальные скрипты.

Цитата:
А как запустить их внутри сценария ?


Их нужно куда-нибудь извлечь (во временную папку, напр.) и только после этого запустить.

[more=Цитата из справки о запуске различных файлов]Почему Run() служит только для запуска .exe и .com файлов? Как запустить .msi / .txt и другие файлы?

Имеется совсем немного файлов, расширения названия которых говорят о том, что эти файлы могут быть "выполняемыми" - это .exe, .bat, .com, .pif. Другие файлы с расширениями названий .txt или .msi являются просто материалом для работы других программ. Если дважды нажать в Проводнике файл "myfile.msi", то в реальности произойдет создание команды "msiexec.exe myfile.msi", которая затем запускается незаметно для Вас. А это, между прочим, означает, что всегда можно запустить .msi файл из AutoIt также просто:

RunWait("msiexec myfile.msi")



Если Вам неизвестно название программы, которая пользуется Вашим файлом, то можно совсем упростить свою жизнь и выполнить команду "start", которая автоматически "заставит" выполняться файл:

RunWait(@COMSPEC " /c Start myfile.msi")

[/more]
Автор: Sergio12305
Дата сообщения: 28.03.2006 14:49
А зачем тогда нужна команда "Fileinstall" ? При компиляции скрипта, содержащего "FileInstall ( "source", "dest" [,flag] )", файл, указанный в "source" добавляется в *.exe (судя по размеру получивщегося exe-файла). А вот как запустить этот файл, не копируя его во временную папку ? Ведь он уже есть в откомпиллтрованном сценарии.
Автор: Melkosoft
Дата сообщения: 28.03.2006 15:04
Sergio12305

Цитата:
А зачем тогда нужна команда "Fileinstall" ? При компиляции скрипта, содержащего "FileInstall ( "source", "dest" [,flag] )",

Она нужна для включения в скрипт файла и его извлечения из скрипта куда-либо при его запуске.

Цитата:
А вот как запустить этот файл, не копируя его во временную папку ? Ведь он уже есть в откомпиллтрованном сценарии.

Никак!

Обращал внимание, что делает архиватор при запуске файла, находящегося в архиве?
Тут аналогично.


Автор: NORIO
Дата сообщения: 01.04.2006 04:59
Хочу осуществить копирование выделенного текста из Edit элементов минуя имитацию хоткеев а используя api.
Как это сдеать?
Примерно реализацию с помощью вызова функций user32.dll знаю, но того что хочу неполучается.
Автор: Serge2005
Дата сообщения: 05.04.2006 11:39
Скажите, пожалуйста... Есть файл такой структуры:
[more]
default.bar:
[Buttonbar]
Buttoncount=58
button1=%ProgramFiles%\Winamp\winamp.exe,3
cmd1=%ProgramFiles%\Winamp\winamp.exe
path1=%ProgramFiles%\Winamp\
iconic1=1
menu1=WinAmp
button2=%Commander_path%\Plugins\wfx_TWinAmp2_1.5.2\WAC.exe,6
cmd2=%Commander_path%\Plugins\wfx_TWinAmp2_1.5.2\WAC.exe
param2=prev
path2=%Commander_path%\Plugins\wfx_TWinAmp2_1.5.2\
menu2=Предыдущий трек
button3=%Commander_path%\Plugins\wfx_TWinAmp2_1.5.2\WAC.exe,9
cmd3=%Commander_path%\Plugins\wfx_TWinAmp2_1.5.2\WAC.exe
param3=play
path3=%Commander_path%\Plugins\wfx_TWinAmp2_1.5.2\
menu3=Воспроизведение
button4=%Commander_path%\Plugins\wfx_TWinAmp2_1.5.2\WAC.exe,8
cmd4=%Commander_path%\Plugins\wfx_TWinAmp2_1.5.2\WAC.exe
param4=pause
path4=%Commander_path%\Plugins\wfx_TWinAmp2_1.5.2\
menu4=Пауза
button5=%Commander_path%\Plugins\wfx_TWinAmp2_1.5.2\WAC.exe,13
cmd5=%Commander_path%\Plugins\wfx_TWinAmp2_1.5.2\WAC.exe
param5=stop
path5=%Commander_path%\Plugins\wfx_TWinAmp2_1.5.2\
menu5=Стоп
button6=%Commander_path%\Plugins\wfx_TWinAmp2_1.5.2\WAC.exe,4
cmd6=%Commander_path%\Plugins\wfx_TWinAmp2_1.5.2\WAC.exe
param6=next
path6=%Commander_path%\Plugins\wfx_TWinAmp2_1.5.2\
menu6=Следующий трек
...
[/more]
нужно, чтоб параметры можно было менять независимо от счетчика, то есть, как я себе представляю, сначала задаю поиск на "%ProgramFiles%\Winamp\winamp.exe,3", из него получаю, что это именно button1, пото достаю имеено 1, а потом прописываю в menu1 новое значение. Это возможно?
Автор: gerrCrazzy
Дата сообщения: 01.06.2006 12:49
AddXL или еще кто в теме
Цитата:
вопрос кейлогера на Autoit нашелся на их оф.форуме
подробнее по этому поводу не скажешь? а то я чегот заблудился на их форуме. Подойдёт ли от Autohotkey? На первый взгляд способы записи калавиш не отличаются

Автор: aisboard
Дата сообщения: 02.06.2006 10:31
Как передавать в программы русские буквы?
Например в Ворд передать русских текст "Привет!"
Автор: gerrCrazzy
Дата сообщения: 05.06.2006 15:37
aisboard, есть два пути решения этого недоразумения:

Установить язык ввода для окна как Русский
Код: Opt ("WinTitleMatchMode",4)
...
;Язык ввода - русский
_SetKeyboardLayout("00000419",WinGetHandle("last"));
Send("Превед")
;Снова буржуинский
_SetKeyboardLayout("00000409",WinGetHandle("last"));
Send(". From AutoIt")
Автор: Unix
Дата сообщения: 05.07.2006 05:37
Здрасте люди.
Есть вопрос. Мне нужно автоматизировать нажатие кнопок : "A", "V", "S" интервалом в 2-4 секунды. Щас попробуй сам конечно разобратся. Но в прозапас. Может кто кинет готовый скрипт?
Буду примного приблагодарен.

Забыл добавить. Эти кнопки должны будут нажаты в определеной программе. Хотя незнаю какая разница. Вообще программа будет открыта и нужно только будет в ней нажимать эти клавиши .

Нашел такое.
Но беда в том, что оно не работает и не нажимает. Но когда есть окошко печати то печатает как нодо. =(

Opt("SendKeyDownDelay", 3)
Opt("SendKeyDelay", 2)

HotKeySet("{PAUSE}","Escape")

; Settings / Constants

WinActivate($GameWinTitle, "")
WinWaitActive($GameWinTitle, "", 5)

While 1
Send("{v down}")
Sleep("100")
Send("{v up}")
Sleep("100")
Send("{a down}")
Sleep("100")
Send("{a up}")
Sleep("20000")
WEnd

Func Escape()
Exit
EndFunc
Автор: kpuk
Дата сообщения: 26.07.2006 19:02
прошу сильно не пинать, а подробненько разжувать:
Есть прога. К ней есть API-функции.
Как их передать программе через autoit??
Просьба попожробенее и на примере.
Вот, для примера имею:
- доступ к функциям осуществляется через единый интерфейс IRunpadShell
----------------------------------------------
HRESULT TurnShell(BOOL bNewState);
Включает или отключает шелл (TRUE/FALSE соответственно)
----------------------------------------------

Как мне к примеру через автоит закрыть прогу через эту функцию???
Автор: kpuk
Дата сообщения: 27.07.2006 08:31
вот ещё вопрос возник: как обратно из ехе получить au3?
Автор: Melkosoft
Дата сообщения: 27.07.2006 09:47
kpuk

Цитата:
вот ещё вопрос возник: как обратно из ехе получить au3?

В дистрибутив входит программа Exe2Aut.exe.
Восстанавливает даже комментарии.
Разумеется, если при компиляции снята галка Allow decompilation (или установлен и забыт пароль), то Exe2Aut.exe не поможет.
Автор: kpuk
Дата сообщения: 27.07.2006 09:53
ага, со вторым вопросом я поспешил, потомучто невнимательно порылся по каталогам проги, а первый досихпор в силе!!!

Написал в куче форумах по поводу тех апи. Оказалось что с помощью автоит у меня не получится той прогой управлять.

А сейчас бьюсь над проблемой: как снести процесс такой как World Of Warcraft??
Автор: Denis_Kokyev
Дата сообщения: 18.08.2006 03:02
AutoIt 3.2
http://www.autoitscript.com/files/autoit3/autoit-v3-setup.exe
Автор: as_esm
Дата сообщения: 26.08.2006 00:38
по поводу вывода send (проблемы с русским и всякое такое), как это решать было сказано выше, а вот полезная функция Asc:

Код:
$code = Asc("b")
MsgBox(0, "ASCII code for b:", $code)
Автор: kpuk
Дата сообщения: 26.08.2006 19:09
а чем тебя функция send не устраитвает??
Если надо именно ASCII значение комбинации то тебе в инете поискать надо - эти значения не зависят от программы. Тоесть я хочу сказать что и дл я делфи и для С++ ASCII значение кнопок одно и тоже
Автор: as_esm
Дата сообщения: 28.08.2006 02:10
Да нравится мне функция send , просто из-за того что я нахожусь, на самой первой ступени изучения, мне пока многое не ясно.

Ну, я вроде разобрался, как посылать…
Вот такая конструкция вполне работает:

Код:
Func _SetKeyboardLayout($sLayoutID, $hWnd)
Local $WM_INPUTLANGCHANGEREQUEST = 0x50
Local $ret = DllCall("user32.dll", "long", "LoadKeyboardLayout", "str", $sLayoutID, "int", 0)
DllCall("user32.dll", "ptr", "SendMessage", "hwnd", $hWnd, "int", $WM_INPUTLANGCHANGEREQUEST, "int", 1, "int", $ret[0])
EndFunc

Func WrText2()

$TEXT2 = "Это тест{!} {ASC 44} {ASC 44} {ASC 44} текст посылается в wordpad {ASC 46} так выделяется ^b жирным ^b ^i так наклонным ^i {ASC 44}" & @CRLF

Opt ("WinTitleMatchMode",4)
_SetKeyboardLayout("00000419",WinGetHandle("last"));
Send( $TEXT2 )
EndFunc

WrText2()
Автор: M1chA
Дата сообщения: 18.10.2006 07:51
Всем привет!
Может кто поможет.
Есть такая необходтмость устанавливать софт с диска на компы(ежедневно около 20-30 компов).Основной комплект прог для большинства компов одинаков,но достаточно часто возникает нужда поставить стандартный комплект прог с небольшими изменениями(вместо одних прог поставить другие,например вместо windvd power dvd).
Написал в AutoIt примитивный скрипт типа:

run ("Multemedia\Burn disk\Nero\Nero6608a.exe")
WinWaitActive("Nero Burning ROM Помощник установки", "Nero Burning ROM")
ControlCommand("Nero Burning ROM Помощник установки", "Nero Burning ROM", "Button2", "Check", "")
WinWaitActive("Nero Burning ROM Помощник установки", "Я принимаю все пункты")
ControlCommand("Nero Burning ROM Помощник установки", "", "Button8", "Check", "")
ControlCommand("Nero Burning ROM Помощник установки", "", "Button2", "Check", "")
ControlSetText("Nero Burning ROM Помощник установки", "", "Edit1", "User")
ControlSetText("Nero Burning ROM Помощник установки", "", "Static13", "C:\Program files\ahead")
ControlSetText("Nero Burning ROM Помощник установки", "", "Edit3", "1A23-0009-4030-2365-1072-0797")
ControlCommand("Nero Burning ROM Помощник установки", "", "Button2", "Check", "")
WinWaitActive("Nero Burning ROM Помощник установки", "Завершить")
ControlCommand("Nero Burning ROM Помощник установки", "", "Button11", "unCheck", "")
ControlCommand("Nero Burning ROM Помощник установки", "", "Button12", "unCheck", "")
ControlCommand("Nero Burning ROM Помощник установки", "", "Button13", "unCheck", "")
ControlCommand("Nero Burning ROM Помощник установки", "", "Button3", "Check", "")

Как сделать так чтобы я мог ставить разные комплекты прог?Мне кажется что должно выпадать при авторане примитивное окно с кнопочками типа:установить комплект_1,установить комплект_2 и т.д. В связи с этиим возник вопрос:можно ли это окно сделать в AutoIt?Или есть какие-то другие способы решения данной проблемы?Может у кого есть уже готовый скрипт-поделитесь пожалуйста.
Заранее благодарен.
Автор: SanjaAlone
Дата сообщения: 18.10.2006 14:49
M1chA

Цитата:
достаточно часто возникает нужда поставить стандартный комплект прог с небольшими изменениями

Можно, конечно, и AutoIt применить, но зачем изобретать велосипед, когда есть WPI?

Прямая ссылка - WPI v5.5 (1,23 Мб)
Обсуждение на форуме OSZone - в этой теме
Автор: M1chA
Дата сообщения: 18.10.2006 15:04
2SanjaAlone
Это как я понял для установки Винды с прогами а мне надо просто проги устанавливать.
Винды как правило уже стоят.
И...мне надо чтобы ставилось комплектами(в комплектах разные проги).
Автор: SanjaAlone
Дата сообщения: 18.10.2006 15:45
M1chA

Цитата:
как я понял для установки Винды с прогами
Неправильно понял. Это именно для установки прог.


Цитата:
в комплектах разные проги
Используй варианты конфигов - это есть в WPI.

P.S. Дальнейшее обсуждение WPI лучше производить в соотв. теме на OSZone
Автор: ViSiToR
Дата сообщения: 26.10.2006 15:36
Кто-то знает, возможно ли на Аутоите, запускать виндовсовских персонажей?

Т.е, вот например, на VBS это делается так:


Код: Set figure = Activ("merlin")
figure.Show
Wsh.Sleep "5000"
Function Activ(figure)
Path = "%WINDIR%\MSAGENT\CHARS\" & figure & ".ACS"
Set AgentControl = WScript.CreateObject("Agent.Control.1", "event_")
If IsObject(AgentControl) Then AgentControl.Connected = True
Set wshshell = CreateObject("WScript.Shell")
Path = wshshell.ExpandEnvironmentStrings(Path)
AgentControl.Characters.Load figure, Path
Set Activ = AgentControl.Characters(figure)
End Function
Автор: Leony
Дата сообщения: 30.10.2006 17:02
Ребята!

Давайте сделаем твикер вындозы в виде набора скриптов AutoIt!
Удобство в том - что для разных случаев можно будет комбинировать в разные папки
или делать ярлыки на них из близкой по задаче папки.

Будет эдакий твикер из кирпичиков...
Получше Neo Utils...

Leon, ICQ 203-248-544
Автор: LEX1
Дата сообщения: 31.10.2006 19:53
Leony
И чем это лучше набора .reg-файлов?
ViSiToR
Примерно также:

Код: $figure = "merlin"

Opt("ExpandEnvStrings", 1)
$Path = "%WINDIR%\MSAGENT\CHARS\" & $figure & ".ACS"
$AgentControl = ObjCreate("Agent.Control.1")
$SinkObject=ObjEvent($AgentControl, "event_")
If Isobj($AgentControl) Then $AgentControl.Connected = True
$AgentControl.Characters.Load($figure, $Path)
$AgentControl.Characters($figure).Show
Sleep (5000)
Exit
Автор: kpuk
Дата сообщения: 31.10.2006 20:57
э. не всё в виндовсе изменяется через рег-файлы. А человек предложил просто написать удобную прогу!

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192

Предыдущая тема: Quintura Search


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.