Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.1] AutoIt скрипты

Закрытая тема
Настройки темы
[Архив - Часть 1.1] AutoIt скрипты

Ветеран


Сообщения: 628
Благодарности: 51

Профиль | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 25-01-2008
Внимание!
Тема переведена в архивное состояние





(настоятельно рекомендуется к прочтению/поиску)


Руководство к действию по работе c AutoIt.

Ну во превых, к моему удивлению, утилита (и компонента activeX) уже успела обновиться до версии 3.1.0 (7 фев 2005) и заполучить множество дополнительных функций (появилась возможность создавать граф. интерфейс к своим скриптам . К сожалению русскоязычной справки пока нет.
Скачать можно здесь

Почему лишь руководство? Потомучто к программе прилагается обширная справка с описанием самой программы и команд, в т.ч. и на русском языке. Основные команды используемые в нашем случае в новой версии не поменялись. Я рассмотрю лишь самые азы, кот. необходимы для создания самого простого скрипта, в принципе этого достаточно для установки практически любой программы, просто знание дополнительных команд позволят сделать скрипт более компактным и красивым.

На сегоднящний день имеется 2 распространненых способа по автоматизации установки
1. Использование утилиты AutoIt и файлов скриптов au3, кот. в последствии можно компилировать в исполнимые файлы exe, не требующие утилиты AutoIt.exe
2. Использование VBS и JS скриптов, этот способ можно расширить за счет использования activeX компоненты - autoitX (к слову сказать - я пользуюсь именно этим методом).

Для примера создадим скрипт по установки Alcohol120%. Самое неприятное в его установки это окно с подтверждением установки SCSI драйвера. Это мы и поправим.
Цитата Скрипт alc120.au3:
'Блокировка клавы и мышки
BlockInput(1)

'Ожидание окна установки SCSI адаптера
WinWait ("Мастер нового оборудования","", 0)

'Пауза на 500 мс на всякий случай, для слабых машин, чтобы окно успело обновиться
Sleep(500)

'Послать в активное окно нажатие клавиши ENTER
send("{ENTER}")

WinWait ("Мастер нового оборудования","Для закрытия мастера", 0)

Sleep(1000)

'Послать в указанное окно ControlClick для кнопки с назв. класса Button9
ControlClick ("Мастер нового оборудования","Для закрытия мастера", "Button9")

'Снятие блокировка клавы и мышки
BlockInput(0)
Скрипт и утилита autoit3.exe будет лежать рядом с дистром, и будет запускаться перед запуском дистрибутива.
Создадим файл с названием alc120.au3 в win1251 кодировке
Теперь нужно заблокировать клавиатуру и мышь чтобы наглый пользователь не нажал что-нибудь или не сменил случайно фокус с активного окна во время работы скрипта.

'Блокировка клавы и мышки (многие команды предназначены для посыла в активное окно)
BlockInput(1)

Скрипт запустился и теперь ожидает запуска инсталяра и появление сигнального окна, кот. сообщит скрипту что программа запущена и можно продолжать выполнение скрипта. Для того чтобы узнать название окна нужно использовать спец. утилитку AU3Info.exe, кот. входит в комплект дистрибутива autoit. Запускаем ее, после чего запускаем дистрибутив Alcohol120% и доходим до того места где вылазит окно Мастер нового оборудования с вопросом об установке SCSI адаптера. Активируем его кликнув по заголовку мышкой и жмем CTRL+ALT+F, в результате в окне AU3Info информация о текущем окне зафиксируется:
Цитата:
>>>>>>>>>>>> Window Details <<<<<<<<<<<<<
Title: Мастер нового оборудования
Class: #32770

копируем название этого заголовка, там же можно посмотреть текст наличествующий в этом окне, если необходимо.
Цитата:
>>>>>>>>>>> Visible Window Text <<<<<<<<<<<
Завершение работы мастера нового оборудования
Мастер завершил установку программ для:
SCSI/RAID хост-контроллер
Для закрытия мастера нажмите кнопку "Готово".
< &Назад
Готово
Отмена

'Ожидание окна установки SCSI адаптера (в зависимости от языка винды заголовок будет разным)
WinWait ("Мастер нового оборудования","", 0)

WinWait ( "title" [, "text" [, timeout]] )
title - название окна кот. ожидает скрипт для продолжения работы,
text - любой текст в этом окне, нужен если последующее окно после нажатия кнопки, имеет такой же заголовок
timeout - таймаут, время через кот. ожидание прекратиться, 0 - никогда


'Пауза на 500 мс на всякий случай, для слабых машин, чтобы окно успело обновиться
Sleep (500)

После того как окно с нужнымм заголовком появилось, скрипт должен послать активному окну клавишу ENTER, в результате будет нажата кнопка по умолчанию (в нашем случае "далее"). Список клавиатурных нажатий см. в справке.

'Послать в активное окно нажатие клавиши ENTER
Send ("{ENTER}")

Далее продолжится устанока SCSI адаптера вплоть до появление последнего окна с предложением закрыть мастер.
'Ожидание окна окончания установки SCSI адаптера
WinWait ("Мастер нового оборудования","Для закрытия мастера", 0)

'Ждем 600 мс. для того чтобы окно успело обновиться
Sleep (600)

Теперь нам нужно нажать клавишу готово, можно воспользоваться тем же методом что и выше Send ("{ENTER}"), но для разнообразия воспользуемся другим, не всегда ведь нам нужна будет кнопка по умолчанию кот. нажимается клавшей ввод. Используем метод ControlClick, кот. позволяет кликнуть по определенному объекту в окне исходя из его идентификатора (Control ID) или Названия Класса (ClassName). Чтобы узнать то или другое используем вышеупомянутую утилитку AU3Info, только теперь подводим курсор на нужную кнопку и смотрим на параметр "ClassNameNN", копируем значение Button9, и используем в скрипте.
Цитата:
>>>>>>>>>>> Control Under Mouse <<<<<<<<<<<
Size: X: 327 Y: 327 W: 75 H: 23
Control ID: 12325
ClassNameNN: Button9
Text: Готово

'Послать в указанное окно ControlClick для кнопки с назв. класса Button9
ControlClick ("Мастер нового оборудования","Для закрытия мастера", "Button9")

ControlClick ( "title", "text", controlID [, button] [, clicks]] )
title - название окна кот. ожидает скрипт для продолжения работы,
text - любой текст в этом окне, нужен если последующее окно после нажатия кнопки, имеет такой же заголовок
controlID - собственно идентификатор
button - какую кнопку использовать "left", "right" или "middle
clicks - количество кликов


Последнее что нужно сделать - снять блокировку с клавы и мышки.
'Снятие блокировка клавы и мышки
BlockInput(0)

После этого скрипт завершается, а алкоголик заканчивает установку.

Теперь нужно проверить работу скрипта.
Cоздаем бат-файл:
Цитата alc.bat:
start C:\Test\AutoIt3.exe alc120.au3
msiexec.exe /passive /norestart /i "C:\Test\setup.msi"
В процессе выполнения скрипта в трэе появится занчок с буквой A, кот. показыает что скрипт выполняется, после отработки он исчезнет, если в процессе установки возникли проблеммы жмем CTRL+ALT+DEL (даже если клава заблокирована) и снимаем процесс autoit3.exe.

Если скрипт отлажен и проблем не возникает, для удобства можно скомпилировать его в .exe файл (содержит в себе утилиту autoit3.exe и скрипт .au3, кот. исполняется).
Для этого можно воспользоваться утлитой Aut2Exe.exe (входит в комплект с дистрибутивом autoit3).
Если нужно будет в последствии что-то изменить в скрипте, то полученный .exe файл можно будет конвертнуть назад в .au3 с помощью другой утилиты Exe2Aut.exe

Что касается 2го способа установки, то просто приведу пример, установки Alcohol120%, кот. использую я
Цитата alc120.vbs:

Dim WshShell, fso, objArgs, AutoIt, dir

Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set AutoIt = WScript.CreateObject("AutoItX.Control")
On Error Resume Next

' Path to current vbs folder to successfully launch script in WPI
dir = fso.GetParentFolderName(WScript.ScriptFullName)

WshShell.Run ("msiexec.exe /passive /norestart /i" & dir & "\setup.msi")

'Блокировка клавы и мышки
AutoIt.BlockInput "on"
'Ожидание окна установки SCSI адаптера
AutoIt.WinWait "Мастер нового оборудования", "", 0
AutoIt.Sleep 500
AutoIt.Send "{ENTER}"
'Ожидание окна окончания установки SCSI адаптера
AutoIt.WinWait "Мастер нового оборудования", "Для закрытия мастера", 0
AutoIt.Sleep 600
AutoIt.Send "{ENTER}"
AutoIt.BlockInput "off"

WshShell.Run ("REGEDIT /S" & dir & "\sets.reg")

Wscript.Quit
В заключение хочу сказать что AutoIt это не только и не столько средство для автоматизации установки различных приложений, это скриптовый язык для автоматизации работы с приложениями, окнами, файлами и реестром с помощью него вполне реально создать небольшую програмку.

---------------------------------------------------------------------------------------------------

Разобранный здесь скрипт тестировался в vmware 4.5 на WinXP.rus SP2
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:12, 21-03-2005

 

Пользователь


Сообщения: 125
Благодарности: 9

Профиль | Отправить PM | Цитировать


kovdaev
Выходит, я зря ехидничал?
Тогда в порядке извинения:
Код: Выделить весь код
$hkey='HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced'
If RegRead($hkey,"NoNetCrawling")='0' Then 
msgbox(0,'','Задан "Автоматический поиск сетевых папок и принтеров"')
Else
msgbox(0,'','"Автоматический поиск сетевых папок и принтеров" не задан')
EndIf
 
Exit
 
#cs
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;Автоматический поиск сетевых папок и принтеров
"NoNetCrawling"=dword:00000001
;НЕ Автоматический поиск сетевых папок и принтеров
"NoNetCrawling"=dword:00000000
 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;Восстанавливать прежние окна папок при входе в систему
"PersistBrowsers"=dword:00000001
;НЕ Восстанавливать прежние окна папок при входе в систему
"PersistBrowsers"=dword:00000000
 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CabinetState]
;Выводить полный путь в панели адреса
"FullPathAddress"=dword:00000001
;НЕ Выводить полный путь в панели адреса
"FullPathAddress"=dword:00000000
 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CabinetState]
;Выводить полный путь в строке заголовка
"FullPath"=dword:00000001
;НЕ Выводить полный путь в строке заголовка
"FullPath"=dword:00000000
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
;Использовать простой общий доступ к Файлам (рекомендуется)
"forceguest"=dword:00000001
;НЕ Использовать простой общий доступ к Файлам (рекомендуется)
"forceguest"=dword:00000000
 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;Не кзшировать эскизы
"DisableThumbnailCache"=dword:00000001
;НЕ "Не кзшировать эскизы"
"DisableThumbnailCache"=dword:00000000
 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;Открывать каждую папку в отдельном окне
"SeparateProcess"=dword:00000001
;НЕ Открывать каждую папку в отдельном окне
"SeparateProcess"=dword:00000000
 
[HKСU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideMyComputerIcons]
;Отображать "Панель управления" в папке "Мой компьютер"
"{21EC2020-3AEA-1069-A2DD-08002B30309D}"=dword:00000000
;НЕ Отображать "Панель управления" в папке "Мой компьютер"
"{21EC2020-3AEA-1069-A2DD-08002B30309D}"=dword:00000001
 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;Отображать описание для папок и элементов рабочего стола
"ShowInfoTip"=dword:00000001
;НЕ Отображать описание для папок и элементов рабочего стола
"ShowInfoTip"=dword:00000000
 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;Отображать простой вид папок в списке папок "Проводника"
"FriendlyTree"=dword:00000001
;НЕ Отображать простой вид папок в списке папок "Проводника"
"FriendlyTree"=dword:00000000
 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;Отображать сведения о размере Файлов в подсказках папок
"FolderContentsInfoTip"=dword:00000001
;НЕ Отображать сведения о размере Файлов в подсказках папок
"FolderContentsInfoTip"=dword:00000000
 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;Отображать сжатые или зашифрованные Файлы NTF5 другим цветом
"ShowCompColor"=dword:00000001
;НЕ Отображать сжатые или зашифрованные Файлы NTF5 другим цветом
"ShowCompColor"=dword:00000000
 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;Отображать содержимое системных папок
"WebViewBarricade"=dword:00000001
;НЕ Отображать содержимое системных папок
"WebViewBarricade"=dword:00000000
 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;Помнить параметры отображения каждой папки
"ClassicViewState"=dword:00000000
;НЕ Помнить параметры отображения каждой папки
"ClassicViewState"=dword:00000001
 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;Скрывать защищенные системные Файлы (рекомендуется)
"ShowSuperHidden"=dword:00000000
;НЕ Скрывать защищенные системные Файлы (рекомендуется)
"ShowSuperHidden"=dword:00000001
 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;Скрывать расширения для зарегистрированных типов Файлов
"HideFileExt"=dword:00000001
;НЕ Скрывать расширения для зарегистрированных типов Файлов
"HideFileExt"=dword:00000000
 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
;Не показывать скрытые Файлы и папки
"Hidden"=dword:00000002
;Показывать скрытые Файлы и папки
"Hidden"=dword:00000001
 
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer]
;Показывать и обрабатывать пару как единый файл
"NoFileFolderConnection"=dword:00000000
;Показывать обе части и обрабатывать их отдельно
"NoFileFolderConnection"=dword:00000001
;Показывать обе части, но обрабатывать их как единый Файл
"NoFileFolderConnection"=dword:00000002
 
#ce
Но, может, все-таки лучше задавать эти параметры напрямую через реестр?

Отправлено: 19:20, 18-01-2006 | #301



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 41
Благодарности: 0

Профиль | Отправить PM | Цитировать


Сегодня вечером попробовал все работает.
Можно еще один вопрос по скрипту drweb?
Сам вопрос:
Если разрешение экрана самое низкое 800х640, стандартный драйвер windows, часть кнопок за пределами экрана и скрипт не работает, не приятно однако:
сам скрипт:

#cs
----------------------
Приложение: Dr.Web
На какой(их) версии(ях) тестировалось: 4.33

Автор скрипта: Sanja Alone (http://forum.oszone.net/member.php?userid=28800)
----------------------
#ce
;предотвращение возможности множественного запуска скрипта
If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)
;скрыть в системной панели индикатор AutoIt
;AutoItSetOption("TrayIconHide",1)
;Отображать текущую строку сценария с помощью индикатора системной панели в режиме отладки.
AutoItSetOption("TrayIconDebug", 1)
If ProcessExists ( "ps.exe" )<>0 Then
ProcessClose ( "ps.exe" )
ProcessWaitClose ( "ps.exe" )
EndIf
;нельзя блокировать при находящемся в памяти Punto Switcher-е - не будет работать установка
;блокируем мышь и клаву
;If @OSType="WIN32_NT" Then BlockInput ( 1 )
#cs
----------------------
объявление переменных
----------------------

$Title - заголовок окна установки
$file - установочный файл
$programgroup - в какую программную группу положить ярлыки программы
$validkey - Легальный ключевой файл (положите его в любой подкаталог текущего, по ум это validkey)

Для регистрации программы нужно положить файл drweb32.key в каталог из к-рого запускается установка,
тогда файл-ключ будет скопирован в каталог DrWeb-а и программа будет зарегистрирована (если ключ подойдет).
Это в идеале, но т.к. тихая установка в версии 4.33 не работает, и при обычной установке с правильным key-файлой
запускается антивирусная проверка (к-рую нельзя отменить), то лучше положить в установочный каталог невалидный ключ, а
"правильный" скопировать в каталог установленного DRWeb-а уже после завершения инсталляции.

Файл setup.iss внутри этого архива - для версии 4.32b.
Я дополнительно вложил в архив еще и setup.iss для 4.33 - может у кого-то, как-то получится заставить заработать тихую установку и для этой версии.
----------------------
#ce
Global $Title='Установка Dr.Web', $file='drweb-433-win-ru.exe', $programgroup='Антивирусы\Dr.Web', $validkey=@ScriptDir & '\validkey\drweb32.key'
Run ( @ScriptDir&'\'&$file )
WinWaitActive ( 'Dr.Web - InstallShield Wizard' )
Send("{ENTER}")
WinWait ( $Title, 'Вас приветствует программа' )
WinActivate ( $Title, 'Вас приветствует программа' )
WinWaitActive ( $Title, 'Вас приветствует программа' )
Send("{ENTER}")
WinWaitActive ( 'Внимание!!!' )
;поставить галку "Да, на компьютере не установлено других антивирусных продуктов."
ControlClick ( 'Внимание!!!', '', 'Button4' )
Send("{ENTER}")
WinWaitActive ( $Title, 'Лицензионное соглашение' )
;выбрать "Я &принимаю условия лицензионного соглашения"
ControlClick ( $Title, 'Лицензионное соглашение', 'Button3' )
Send("{ENTER}")
WinWaitActive ( $Title, 'Выбор папки назначения' )
;по ум. C:\Program Files\DrWeb
$InstPath = ControlGetText ( $Title, 'Выбор папки назначения', 'Static4' )
Send("{ENTER}")
WinWaitActive ( $Title, 'Вид установки' )
;Обычная
Send("{ENTER}")
WinWaitActive ( $Title, 'Выбор папки' )
ControlSetText ( $Title, 'Выбор папки', 'Edit1', $programgroup )
Send("{ENTER}")
WinWaitActive ( $Title, 'Начало копирования файлов' )
Send("{ENTER}")
AutoItSetOption("MouseCoordMode",2)
WinWaitActive ( $Title, 'Настройки прокси сервера' )
MouseClick("left", 639, 472, 1, 0)
;это окно появляется только в сл. неподходящего key-файла
WinWaitActive ( 'Вопрос', 'Не обнаружено коммерческого или демонстрационного ключевого файла' )
ControlClick ( 'Вопрос', 'Не обнаружено коммерческого или демонстрационного ключевого файла', 'Button2' )
;и сразу идет переход к завершению установки
WinWaitActive ( $Title, 'Программа InstallShield Wizard завершена' )
;выбрать "Нет, перезагрузить компьютер позже."
ControlClick ( $Title, 'Программа InstallShield Wizard завершена', 'Button2' )
Send("{ENTER}")
Sleep ( 50 )
RunWait ( @Comspec & ' /C taskkill.exe /F /IM notepad.exe /IM spidernt.exe', '', @SW_HIDE )
;копирование рабочего ключевого файла в каталог антивируса (если файл существует)
If FileExists ( $validkey ) Then FileCopy ( $validkey, $InstPath & '\', 1 )
;копирование дополнений к базе вирусов в каталог DrWeb-а (если они есть)
If FileExists ( @ScriptDir & '\drw?????.vdb' ) Then
FileCopy ( @ScriptDir & '\drw?????.vdb', $InstPath & '\drw?????.vdb', 1 )
FileCopy ( @ScriptDir & '\drw?????.txt', $InstPath & '\drw?????.txt', 1 )
EndIf
;удаление ярлыка с рабочего стола
FileDelete ( @DesktopCommonDir & '\Сканер Dr.Web.lnk' )
ProcessWaitClose ( $file )
;BlockInput ( 0 )

Может автор поправит,
Это я к чему, может еще кому пригодиться.

Заранее спасибо.

Отправлено: 20:58, 18-01-2006 | #302


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


bogomolv

Цитата:
Punto Switcher можно установить еще "тише":
Спасибо, но дело не в том, чтобы просто получить "тихий" инсталлятор" Punto Switcher.
Я его попросту перепаковал InnoSetupом вместе со всеми ключами реестра и файлами, а установщик InnoSetup отлично поддерживает "тихие" ключи при инсталляции.
В порядке "освоения" AutoIt хотелось понять из-за чего не работает вроде бы нормальный скрипт.

А за ключи благодарствую - я оказывается
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache\Punto Switcher 2.8"
не включил в установщик, сейчас перекомпилирую.

Спасибо, также Sanja Alone. То-то мне показалось, что батоны меняют номера. Значит такое действительно может быть.
И за поправку "If WinExists(@ScriptName) Then Exit".

Отправлено: 03:21, 19-01-2006 | #303


Аватара для Sanja Alone

Ищу Человека…


Сообщения: 420
Благодарности: 67

Профиль | Сайт | Отправить PM | Цитировать


kovdaev
Цитата:
Если разрешение экрана самое низкое 800х640
Точнее 800x600. Вот это да, а разве ниже где-то еще бывает У меня на VMWare при всех тестах стоит 800x600.

Цитата:
часть кнопок за пределами экрана и скрипт не работает, не приятно однако:
Не работала вот эта ф-ция - MouseClick("left", 639, 472, 1, 0). Я дописал проверку с последующим сдвигом окна - теперь все ОК даже при архаичном 640x480. А если сильно захочется потестить при 320x240 (320x200), то еще больше сдвинь окно (не -200, а -300-400) - но это уже клиника...

Цитата:
сам скрипт:
Приводить здесь листинг не требовалось - это напрасное засорение форума. У меня ведь он и так есть

Цитата:
Может автор поправит
Уже.

-------
Sanja Alone's site (ConvRegToAU3, OEsr, RSA, AutoIt скрипты)


Отправлено: 03:37, 19-01-2006 | #304


Новый участник


Сообщения: 20
Благодарности: 1

Профиль | Отправить PM | Цитировать


Предлогаю вот такое решение вопроса переключения языка клавиатуры.Основанное на функциях WinAPI.
Работать должно начиная с Win98.
Код: Выделить весь код
 
Opt("WinTitleMatchMode", 4)
Run("notepad.exe")
Sleep(500)
$hWnd = WinGetHandle("classname=Notepad")
_SetKeyboardLayout("00000409", $hWnd)
 
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
Exit
Дополнительные языки.

Код: Выделить весь код
"00000407" Немецкий (стандартный) 
"00000409" Английский (США) 
"0000040C" Французский (стандартный) 
"0000040D" Финский 
"00000410" Итальянский 
"00000415" Польский 
"00000419" Русский 
"00000422" Украинский 
"00000423" Белорусский 
"00000425" Эстонский 
"00000426" Латвийский 
"00000427" Литовский

Последний раз редактировалось ANGRO, 21-01-2006 в 12:57.


Отправлено: 20:00, 19-01-2006 | #305


Аватара для Sanja Alone

Ищу Человека…


Сообщения: 420
Благодарности: 67

Профиль | Сайт | Отправить PM | Цитировать


Внес существенные изменения в свой конвертер crta (ConvRegToAu3)

2006-01-31
  • Добавлен индикатор выполнения (активируется ключом /b или параметром ProgressBar в ini-файле).
2006-01-30
  • Введена возможность исправления ошибок в строковых параметрах содержащих "возврат каретки" внутри (regedit при экспорте таких параметров в reg-файл ошибается) - отменяется ключом /f или параметром FixSZErr в ini-файле.
2006-01-29
  • Ужесточены условия проверок типов - мне они представляются однозначными. Допускается любое к-во символов равно '=' в названиях и в значениях любых параметров.
  • Обрамляются кавычками ветки/параметры в сл. использования команды REG ADD для пустых параметров типа "REG_MULTI_SZ" - сразу недосмотрел. При сложных для конвертации комбинациях символов в названиях таких параметров в рез. файл пишется соотв-щее предупреждение. А в сл. неприменения REG ADD, для данных параметров всегда пишется предупреждение о неправильности рез-та подобной конвертации. (ищите строки, начинающиеся с ;--- WARNING).
  • При невозможности конвертации любого параметра (из поддерживаемых конвертером типов) в результирующий файл пишется соотв-щее сообщение с информацией о номере строки исходного файла явившейся источником проблемы (ищите строки, начинающиеся с ;--- ERROR).
  • Появилась возможность установки приоритета процесса конвертера (ключи /p0 /p1 /p2 /p3 /p4 /p5; параметр Priority в ini-файле).
2006-01-27
  • Значительно (почти в 10 раз!) повышена скорость работы - тестовый файл вместо 4,5 мин. конвертируется около 30 сек.
  • Полностью устранены проблемы с одинарными кавычками в названиях веток, в названиях всех параметров, а также внутри "REG_MULTI_SZ" параметров (') - любое к-во таких символов теперь будет правильно преобразовано в последовательность Chr(39).
  • Введена возможность конфигурирования посредством ini-файла (см. комментарии в файле crta.ini). Ключи командной строки, как и положено, имеют больший приоритет, чем параметры ini-файла.
  • Добавлена возможность импорта в реестр пустых параметров типа "REG_MULTI_SZ" [hex(7):00,00 и hex(7):00] c пом. команды REG ADD. Cам AutoIt не умеет этого делать - все подобные строки превращаются в аналог hex(7):00,00,00. Отменить функцию можно ключом /r - тогда в результирующий файл будет записано предупреждение об ошибке.
  • Игнорирование параметров типа "REG_NONE" [hex(0)].
2006-01-23
  • Исправлена работа с многострочными параметрами типа "REG_MULTI_SZ" (теперь добавляются переносы строк @LF и параметры корректно импортируются в реестр - раньше же все превращалось в одну длинную строку).
  • Дополнено распознавание параметров "REG_BINARY" (hex и hex(3)). Это была не моя ошибка, просто regedit всегда экспортирует параметры типа "REG_BINARY" как hex, а довольно часто используемый мной RegShot (в редакции ParaGlider-а) - как hex(3). Оба варианта правильны.
  • Игнорирование параметров типов "REG_DWORD_BIG_ENDIAN" [hex(5)], "REG_LINK" [hex(6)].
  • Теперь в результирующий файл пишутся строки RegWrite('ветка') только если в reg-файле есть соотв-щая пустая (без параметров и подветок внутри) ветка. Это сделано для оптимизации результирующего autoit-скрипта, путем сокращения лишних действий в оном.
  • Переписан разбор командной строки - ключи теперь независимы, также их можно писать слитно (например: crta in.reg /c/h/d). Добавлен новый ключ /h - копировать в буфер обмена только результат последней конвертации (текущее содержимое результирующего файла пропускается; используйте совместно с ключем /c).
страница загрузки
история изменений

-------
Sanja Alone's site (ConvRegToAU3, OEsr, RSA, AutoIt скрипты)


Последний раз редактировалось Sanja Alone, 01-02-2006 в 23:00.


Отправлено: 01:10, 24-01-2006 | #306


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день ! У меня такая задача:

Есть несколько программ для загрузки прайс-листов разных поставщиков товара. Необходимо последовательно: запустить каждую из них, получить прайс-лист, закрыть программу, запустить следующую. Как я понял, с помощью AutoIt это сделать вполне реально.

Теперь ВОПРОС: можно ли выполнить перечисленные действия так, что бы программы для загрузки прайс-листов запускались НЕВИДИМЫМИ, при условии, что все программы ведут диалог с пользователем (задаются вопросы с вариантами выбора типа "Обновить / Отмена" ???

Если можно, то начну разбираться с AutoIt.
Напишите, пожалуйста, в общих чертах как это сделать, или посоветуйте - где об этом можно почитать.

Спасибо.

Отправлено: 08:09, 26-01-2006 | #307


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день!
Нужна помощь профи. Есть программа, управление которой я хочу автоматизировать при помощи AutoIt. Суть проблемы в том, чтобы узнать какого цвета пиксел в данной точке экрана, черный или белый? Есть ли в AutoIt методы "считывания" цвета пиксела в заданной точке?
Заранее спасибо!

Отправлено: 14:52, 26-01-2006 | #308


Аватара для Sanja Alone

Ищу Человека…


Сообщения: 420
Благодарности: 67

Профиль | Сайт | Отправить PM | Цитировать


elakt
Цитата:
можно ли выполнить перечисленные действия
Да. Что-то похожее здесь уже спрашивали - вот, что я предложил.
Цитата:
запускались НЕВИДИМЫМИ
См. флаг @SW_HIDE ф-ций Run() и RunWait().
Цитата:
где об этом можно почитать
В файле %ProgramFiles%\AutoIt3\AutoIt.chm.


lemon76
Цитата:
Есть ли в AutoIt методы "считывания" цвета пиксела в заданной точке?
PixelGetColor ( x , y )

-------
Sanja Alone's site (ConvRegToAU3, OEsr, RSA, AutoIt скрипты)


Отправлено: 05:43, 27-01-2006 | #309


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо за ответ! Теперь появились новые вопросы.

1. Запускаем блокнот в невидимом окне:
Run("notepad.exe", "", @SW_HIDE)

2. Далее мне нужно дождаться, когда это окно появится. Среди стандартных команд не нашёл ту, которая дожидалась бы появления НЕВИДИМОГО окна, поэтому использовал команду задержки Sleep, что бы дождаться загрузки блокнота. ВОПРОС: можно ли решить эту задачу иначе?

3. После того, как блокнот загрузился, посылаю ему строку текста:
ControlSend("Безымянный - Блокнот", "", "Edit1", "Send text to notepad")

4. Затем посылаю команду, которая в меню блокнота выбирает пункт "Выход":
WinMenuSelectItem("Безымянный - Блокнот", "", "&Файл", "В&ыход")

5. После этого на экране появляется окно с вопросом "Сохранить изменения? Да/Нет/Отмена" - не смотря на то, что основное окно блокнота невидимо! Ответить на этот вопрос проблем не составляет, но... ВОПРОС: как избежать появления окна с вопросом на экране? То есть что бы оно, как и основное окно, было невидимым? Можно дождаться его появления и "спрятать" командой WinSetState, но в этом случае окно всё равно мелькнет на экране. Как быть?

Отправлено: 09:12, 27-01-2006 | #310



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.1] AutoIt скрипты

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? DreDo Хочу все знать 4 01-12-2009 18:54
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. Vadikan AutoIt 1543 18-01-2009 10:46
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
[Архив - Часть 1.3] AutoIt скрипты biork AutoIt 503 09-06-2007 11:27
[Архив - Часть 1.2] AutoIt скрипты Dirk Diggler AutoIt 505 02-12-2006 11:00




 
Переход