[Архив - Часть 1.2] AutoIt скрипты

Ответить
 • Просмотры: 6
Аватара пользователя
Sanja Alone

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Sanja Alone »

Yozhegg


Цитата:



смущало отсутствие возможности форматирования



См. в сторону ф-ции StringFormat ( "format control", var1 [, ... var32] ).




Цитата:



как в AutoIt снять показание с RadioButton





Код:

Код: Выделить всё

If BitAnd(GUICtrlRead($Radio_1),$GUI_CHECKED) Then
	msgbox(0,"","Отмечена кнопка 1")
Else
	msgbox(0,"","Кнопка 1 НЕ отмечена")
EndIf


Цитата:



Ischecked -это параметр, или макрос



Это переменная, описывающая состояние н-рого эл-та управления.
Аватара пользователя
Creat0R

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Creat0R »

Michail77


Цитата:



чтобы при отметке установки нескольких программ они запускались поочерёдно. Как это сделать?



Очень просто ... нужно вместо Run (запуска приложения), прописать RunWait (Запуск приложения с ожиданием его завершения). Т.е просто везде где у тебя в скрипте есть Run(....) Замени на RunWait(...).



И ещё, если установка того или иного приложения, “запускает” внешние модули\приложения, то нужно определить какие именно, т.е какие процессы, или окна появляются, и в соответствии с этим делать проверку на окончание процесса установки. Если же всё обходится (заканчивается) одним процессом (не запуская внешние\дополнительные процессы\окна), то досаточно того метода который я упомянул чуть выше.



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

2 ALL



Есть такая проблема - Я хочу сделать проверку на нажатие определённой клавиши, кнопки мышки, или любого другого действия со стороны пользователя. Известно что есть функция _IsPressed
- Но она проверяет каждый раз ввод\нажатие одной клавиши\кнопки, а мне нужно чтобы проверялось любое вхождение при одной (или даже нескольких) проверке... я сделал это для нескольких вхождении, но предусмотреть все, мне не удалось...





Код:

Код: Выделить всё

For $i = 01 to 91
    If _IsPressed($i, $dll) Then
        ........
    EndIf
Next

Хотелось чтобы были предусмотрены все нажатия на клавиатуре и на мышке, но, кроме одного - SHIFT (с обоих сторон).



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

P.S



Переделал полностью (кроме самой главной функции от amel27) скрипт для перекодировки скриптов в целях помещения их в форуме (в разукрашенном виде Изображение )... получилось полностью автоматизировать весь процессс - теперь не нужно самому экспортировать скрипт au3 в xml формат, это сделает автоматический сам скрипт, нужно всего лишь указать файл скрипта (*.au3), и в процессе (до процесса) обработки, он будет экспортирован в xml формат - Для этого редактор SciTE должен быть в дефолтной папке AutoIt'а, т.е путь берётся относительно @AutoItExe:



Код:

Код: Выделить всё

$SciTEPath = StringTrimRight(FileGetShortName(@AutoItExe), StringLen(StringRegExpReplace(@AutoItExe, "^.*\\", ""))) & "SciTE\SciTE.exe"

Также вместо того, чтобы открывать файл с результатом, результат выводится в гуи (в Edit поле), а также есть возможность очистить результат (не закрывая гуи), и выбрать другой скрипт для обработки... имхо, получилось довольно оригинально!



И ещё, теперь данные для последнего используемого скрипта (и файла в который будет помещён результат), вписываются в конец самого скрипта, и считываются как с файла конфигурации (*.ini), мне кажется так надёжнее. Так что компилировать скрипт нет смысла, а если есть желание, то лучше исключить из скрипта эту функцию.



Скачать архив со скриптом можно
тут
Аватара пользователя
Michail77

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Michail77 »

Michail77


Цитата:



как запустить на установку файл *msi



В начале темы это уже обсуждалось - посты
#79
,
#80
,
#82
,
#89
,
#90
. Если запуск будет производиться в тихом режиме, то нужно исп-ть RunWait вместо Run.



P.S. Не забываем юзать поиск по теме...
Аватара пользователя
Michail77

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Michail77 »

2 Creat0R

Спасибо.

Приведи пожалуйста пример с “запускает” внешние модули\приложения...



2 Sanja Alone

Спасибо,помогло.
Аватара пользователя
Michail77

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Michail77 »

2 Creat0R

Спасибо.

Приведи пожалуйста пример с “запускает” внешние модули\приложения...



2 Sanja Alone

Спасибо,помогло.
Аватара пользователя
Creat0R

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Creat0R »

Michail77


Цитата:



пример с “запускает” внешние модули\приложения...



Просто имел в виду, что нужно убедиться, что запущенный тобой процесс (екзешник к примеру), не запускает другие процессы. Т.е например, ты запускаешь Setup.exe, запустил допустим так - RunWait("Setup.exe", "", @SW_HIDE), но этот установщик построен так, что на каком то этапе, он запускает какой то внутренний его процесс (заранее распоковав файлы во временный каталог), а сам закрывается, и тогда скрипт будет “считать” что запущены им процесс окончен, и не будет “ждать”, ведь ему не известно что запустился другой процесс... поэтому желательно проверить так ли это (просто запусти нужный установщик, и смотри в менеджере процессов какие дополнительные процессы запускаются), и если да, то нужно соответственно прописать определение в скрипте...





Код:

Код: Выделить всё

RunWait("Setup.exe", "", @SW_HIDE) ;Запуск главного установщика
ProcessWait("Имя_допол._процесса", 120) ;Ожидание дополнительного процесса (120 секунд) - это если мы определили что он запускается
If ProcessExists("Имя_допол._процесса") Then ProcessWaitClose("Имя_допол._процесса") ;Если процесс запустился, то ждём его окончания (закрытия)
Аватара пользователя
Michail77

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Michail77 »

Michail77

Creat0R


Цитата:



запускает другие процессы



В тему - посмотрите, как пришлось извратиться в скрипте установки
Photoshop CS2
по причине подобных выкрутасов.
Аватара пользователя
Michail77

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Michail77 »

Вопрос.Можно ли сделать так чтобы в Msgbox была фоновая картинка,т.е есть примитивный код:

Msgbox (0, ".........................." &@CRLF& "............................." и т.д

Нужно чтобы была фоновая картинка а поверх неё писался бы текст как в обычом Msgbox-е

Как это сделать?



И ещё такой вопрос.Как запустить *.bat? Сделал компактный Office 2003. занимает 105мб места.

Если пишу так Run(RunWait) ("office/setup.bat") то появляется и сразу исчезает окно Dos-эмулятора.

Как сделать правильно чтобы всё работало?

Заранее спасибо.
Аватара пользователя
Creat0R

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Creat0R »

Michail77


Цитата:



Можно ли сделать так чтобы в Msgbox была фоновая картинка



Не думаю что это возможно... для таких задачь есть гуи, в котором довольно просто можно построить тот же MsgBox, и гараздо функциональнее.




Цитата:



Как запустить *.bat?



Как обычное приложение...




Цитата:



Если пишу так Run(RunWait) ("office/setup.bat") то появляется и сразу исчезает окно Dos-эмулятора



Попробуй писать полный путь, и\или изменить рабочий каталог (FileChangeDir("Папка_батника")), ну или писать рабочий каталог во втором параметре команды Run ("Setup.bat", "путь_к_папке_батника").



Я обычно запускаю батник (хотя стараюсь выполнять его функции в самом скрипте) таким образом:





Код:

Код: Выделить всё

RunWait(@ScriptDir & "\Batnik.bat", "", @SW_HIDE)

Или можно просто выполнить нужные команды сразу используя переменную ком. строки (cmd.exe)...





Код:

Код: Выделить всё

Run(@ComSpec & " /c start .....", "", @SW_HIDE)

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



По поводу MsgBox'ов (и не только), у меня тоже есть один вопрос...



-Возможно ли привязать MsgBox, или любое из окон вызываемое для выбора/сохранения файла/папки (FileSelectFolder к примеру), к окну гуи? т.е чтобы при вызове одного их этих окон, оно было уже как бы дочерним окном гуи, и чтобы не было доступа к родительскому окну (гуи) до тех пор пока не закроется это-дочернее окно. Знаю что для обычных, гуивских дочерних окон, можно прописать как последний параметр переменную определяющую относительность к родительскому гуи, и также нужно неитрализовать родительский гуи макросом @SW_DISABLE, но как такое же сделать с окнами вызыванными по FileSelectFolder, FileOpenDialog, FileSaveDialog или даже тот же MsgBox? для этих окон вроде нет такого параметра, который определял бы их относительность к гуи.
Аватара пользователя
Dentel

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Dentel »

Всем добрый день!



Господа, вопрос, возможно, глупый, но может ли скрипт написаный с помощью AutoIt работать на компьютере к которому не подключен монитор?
Ответить

Вернуться в «AutoIt»