Показать полную графическую версию : [Архив - Часть 1.2] AutoIt скрипты
Мужики, поможите, не сочтите за невежество. Все перечитал на форумах, создал диск для установки винды XP с автоустановкой приложений. Вроде разобрался со всеми необходимыми нюансами. Винда втыкается, все путем, доходит до автоустановки приложений и выходит такая картина - все приложениия с использованием AutoIt не ставятся. Все скрипты пашут, проверял, все путем. Видимо я напартачил в пакетнике - RunOnceEx.cmd. У меня так прописано:
cmdow @ /HID
@echo off
SET CDROM=%~d0
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
SET i=100
REG ADD %KEY% /V TITLE /D "Installing Applications" /f
REG ADD %KEY%\%i% /VE /D "Preparing Installation..." /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\prepare.cmd" /f
REG ADD %KEY%\%i% /VE /D "K-Lite codepack" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Software\K-lite codepack\AutoIt3.exe klcodec.au3" /f
SET /A i+=1
REG ADD %KEY%\%i% /VE /D "Total Commander" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Software\TOTALCOM\AutoIt3.exe total.au3" /f
SET /A i+=1
REG ADD %KEY%\%i% /VE /D "WinAmp 5_03 FULL" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Software\WINAMP\AutoIt3.exe winamp503.au3" /f
SET /A i+=1
REG ADD %KEY%\%i% /VE /D "RUSSIFIKATOR WinAmp 5_03" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Software\WINAMP\AutoIt3.exe ruswiamp.au3" /f
SET /A i+=1
REG ADD %KEY%\%i% /VE /D "Nero 6316" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Software\Nero6316\nero6316.exe /silent /noreboot /no_ui /sn=1A23-0019-3030-1988-5100-7298 /write_sn
" /f
SET /A i+=1
REG ADD %KEY%\%i% /VE /D "RUSSIFIKATOR Nero 6316" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Software\Nero6316\NBR6316rus.exe /silent /noreboot /no_ui" /f
SET /A i+=1
REG ADD %KEY%\%i% /VE /D "PowerDVD XP v4.0" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Software\PowerDVD\Setup.exe /s /sms" /f
SET /A i+=1
REG ADD %KEY%\%i% /VE /D "Office2003" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Software\Office2003\SETUP.EXE" /f
SET /A i+=1
REG ADD %KEY%\%i% /VE /D "Cleaning Up and Rebooting" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%l\cleanup.cmd" /f
SET /A i+=1
EXIT
Возможно сначала надо проинсталлировать сам AutoIt ? Например:
REG ADD %KEY%\%i% /VE /D "autoit-v3-setup" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Software\Autoit\autoit-v3-setup.exe /s" /f
SET /A i+=1
Как написать скрипт, выполняющийся в системе с наивысшим приоритетом, при этом, не использующим (почти) системных ресурсов.
По горячей клавише снимает все процессы или делает log off. Дело в том, что некоторые игры настолько грузят систему, что она не реагирует даже на сеть. или игра глючит. Так вот необходимо по горячей клавише выходить из любой игры, если она зависла.
HotKeySet("{ESC}", "Terminate")
; Что написать здесь, чтобы повысить приоритет и при этом не жрало ресурсов?
Func Terminate()
Exit 0
EndFunc
kralex
Переконвертируй au3 в exe.
Sanja Alone
11-03-2006, 13:26
dark_n
"Inventory Anlyzer"А здесь точно нет опечатки? Я конечно не знаю, что это за Аналайзер такой, но может должно быть "Inventory Analyzer". А возможно и одного слова "Inventory" будет вполне достаточно...
WinWaitNotActive("","Inventory Anlyzer")
send("{Enter}")Эта конструкция начисто лишена смысла, т.к. ф-ция Send "Sends simulated keystrokes to the active window". Другими словами, этот ENTER гарантированно будет послан не тому окну, что нужно.
WinActive("Inventory Analyzer")WinActive - "Checks to see if a specified window exists and is currently active". Использовать данную ф-цию имеет смысл лишь в каких-то проверках, может здесь должна быть WinActivate?
не срабатывает,окно не активно
Как я сказал выше, для неактивного окна можно еще попробовать:
ControlSend ( "title", "text", controlID, "string" [, flag] ) - "works in a similar way to Send but it can send key strokes directly to a window, rather than just to the active window".
ControlClick ( "title", "text", controlID [, button] [, clicks]] ) или ControlClick + ControlFocus ( "title", "text", controlID ) (учитывая ремарку "The control might first need to be given focus with the ControlFocus command.").
P.S.
run("\\neiwton\auditscaner\ina32.exe")
Честно говоря, не думал, что подобная конструкция может нормально работать - вроде, были проблемы (http://forum.oszone.net/showpost.php?p=352806&postcount=115), к-рые решались так (http://forum.oszone.net/showpost.php?p=352964&postcount=118) или так (http://forum.oszone.net/showpost.php?p=353551&postcount=120).
kralex
Нужно писать полный путь к au3-файлу:
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\Путь_к_AutoIt3.exe\AutoIt3.exe %CDROM%\Software\TOTALCOM\total.au3" /fИ не стоит класть AutoIt3.exe в каталог к каждой проге (тогда уж лучше откомпилировать), достаточно положить AutoIt3.exe в какой-то один каталог и ссылаться на него. И еще один момент - если у тебя в au3-файлах присутствуют строки вида Run('setup.exe'), то, без приведения их к виду Run(@ScriptDir&'\setup.exe') способ установки с использованием одного AutoIt3.exe на диске не сработает, т.к. не сможет найти эти самые setup.exe.
А можешь и проинсталлить - тогда можно будет сразу au3-запускать (если ты принудительно не изменишь действие по ум. для au3-файлов), или откомпилируй (не забыв заменить au3 на exe в своем батнике, ну и пути, ес-но).
P.S. Для кого я писал про тэг code (http://forum.oszone.net/showthread.php?p=416491&posted=1#post415478)?
VelDmi
Что написать здесь, чтобы повысить приоритет и при этом не жрало ресурсов?
ProcessSetPriority(@ScriptName, приоритет)
где, приоритет:
0 - Idle/Low
1 - Below Normal (Not supported on Windows 95/98/ME)
2 - Normal
3 - Above Normal (Not supported on Windows 95/98/ME)
4 - High
5 - Realtime (Use with caution, may make the system unstable)
А можешь не париться со скриптом, а использовать прогу Process Killer (http://alex-home-pg.nm.ru/) - размер около 40Кб, запускается незаметно при старте системы (через HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\run или HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\run), вызывается по Ctrl+Shift+~. Любой процесс убивается одним нажатием на Del. Также присутствует ф-ция рестарта оболочки.
DimkaZar
11-03-2006, 23:51
Подскажите, плиз.
Могу ли я написать скрипт, который при нажатии на оба Shift'а переключал бы раскладку ? У меня стоит ХР и там нету такой опции. А очень хочеться.
Если такое возможно, то напишите как. Или хотя бы скажите как мне поставить скрипт в режим ожидания нажатия двух Шифтов.
Sanja Alone
12-03-2006, 03:09
DimkaZar
при нажатии на оба Shift'аНет. Процитирую ремарку к ф-ции HotKeySet:
The following hotkeys cannot be set:
Ctrl+Alt+Delete - It is reserved by Windows
F12 - It is also reserved by Windows, according to its API.
NumPad's Enter Key - Instead, use {Enter} which captures both Enter keys on the keyboard.
Win+B,D,E,F,L,M,R,U; and Win+Shift+M - These are built-in Windows shortcuts. Note: Win+B and Win+L might only be reserved on Windows XP and above.
Alt, Ctrl, Shift, Win - These are the modifier keys themselves!
Other - Any global hotkeys a user has defined using third-party software, any combos of two or more "base keys" such as '{F1}{F2}', and any keys of the form '{LALT}' or '{ALTDOWN}'.
Есть TreeView с $TVS_CHECKBOXES. Строки в список загружаются из файла. Мне нужно, чтобы скрипт выполнял некоторые действия над выбранными ("оптиченными") элементами (строками) списка. Я так и не смог толком понять, как из скрипта проверить, выделена ли строка в списке
DimkaZar
12-03-2006, 15:39
Sanja Alone
А ты не подкажешь, может есть другие программы..или еще что...мне очень надо сделать что бы на два Шифта переключалась раскладка.
Sanja Alone
13-03-2006, 01:59
DimkaZar
может есть другие программыОни точно есть - многие старые ДОС-овские "кейрусы" переключали языки по двум шифтам и использовали L/R Shift для прямого переключения на конкретный язык. Попробуй задать свой вопрос в в соседнем подфоруме (http://forum.oszone.net/forumdisplay.php?f=7). Вот тебе две темы сходу: первая (http://forum.oszone.net/showthread.php?t=58780) и вторая (http://forum.oszone.net/showthread.php?t=58507)
А если на машине стоит MS-Dos,то как быть (запустить Inventory Analyzer)?Может надо с какими-нибудь ключами?
nsergeip
13-03-2006, 09:44
Sanja Alone у тебя на сайте я нашел скрипт по установке remote administrator, а вот с регистрацией ты не постарался как я посмотрел, а ето помоему немаловажно в автоматическо установке.
Я столкнулся с проблемой по этой части, при запуске ....Radmin\radmin.exe вываливается окно у кот. нет названия, что с этим делать незнаю, мож накидаешь скрипт доконца?
И не стоит класть AutoIt3.exe в каталог к каждой проге (тогда уж лучше откомпилировать), достаточно положить AutoIt3.exe в какой-то один каталог и ссылаться на него. И еще один момент - если у тебя в au3-файлах присутствуют строки вида Run('setup.exe'), то, без приведения их к виду Run(@ScriptDir&'\setup.exe') способ установки с использованием одного AutoIt3.exe на диске не сработает, т.к. не сможет найти эти самые setup.exe.
А можешь и проинсталлить - тогда можно будет сразу au3-запускать (если ты принудительно не изменишь действие по ум. для au3-файлов), или откомпилируй (не забыв заменить au3 на exe в своем батнике, ну и пути, ес-но).
P.S. Для кого я писал про тэг code?
Большое спасибо мужики, разобрался, все влетает теперь в "лысую машину" "как слива в ж....пу". DrWeb 4.33 так никто и не победил до конца? Коли спрашивать еще, так еще вопрос: можно ли через скрипт au3 поиздеваться над разрешением экрана (установить например 1024 х 768, 32 bit, 75 Гц) и активировать винду, т.е. как прописать reboot с заходом в режим защиты от сбоев и автоматом активировать некоторые действия, запустить все тот же скрипт.
Почитал фак, форум про АутоИт3 в принципе ясен принцип...
Установил!
Решил посмотреть как работает, залез в examples и запустил calculator.au3...
Открывается калькулятор встроенный и баста.
По идее там должна произойти операция 2*4*8*16=
Подождать 2 секунды и закрыться.
А у меня ничего не происходит :(
В чем могет быть проблема????
PS: Стоит XP professional service pack 2
тоже самое и с примером notepad1.au3, открывается блокнот и все ...
Почитал фак, форум про АутоИт3 в принципе ясен принцип...
Установил!
Решил посмотреть как работает, залез в examples и запустил calculator.au3...
Открывается калькулятор встроенный и баста.
По идее там должна произойти операция 2*4*8*16=
Подождать 2 секунды и закрыться.
А у меня ничего не происходит :(
В чем могет быть проблема????
PS: Стоит XP professional service pack 2
тоже самое и с примером notepad1.au3, открывается блокнот и все ...Уважаемый Merg! Твоя проблема для калькулятора по-моему такая - у тебя винда русская? Там в демо скриптах все для English винды. Смотри внимательно в данном скрипте для калькулятора строка:
; Wait for the calulator become active - it is titled "Calculator" on English systems
WinWaitActive("Calculator")
Жирным выделена проблема, titled окна должен быть как у тебя, с русским названием окна - "Калькулятор". Например:
; Wait for the calulator become active - it is titled "Calculator" on English systems
WinWaitActive("Калькулятор")
и ниже по скрипту также, тогда все заработает. Проверь.
Уважаемый Merg! Твоя проблема для калькулятора по-моему такая - у тебя винда русская? Там в демо скриптах все для English винды. Смотри внимательно в данном скрипте для калькулятора строка:
Код:
; Wait for the calulator become active - it is titled "Calculator" on English systems
WinWaitActive("Calculator")
Жирным выделена проблема, titled окна должен быть как у тебя, с русским названием окна - "Калькулятор". Например:
Код:
; Wait for the calulator become active - it is titled "Calculator" on English systems
WinWaitActive("Калькулятор")
и ниже по скрипту также, тогда все заработает. Проверь.
Винда русская.
Большое спасибо! ПОМОГЛО! :)
Неискушенному зрителю достаточно трудно заметить разницу (воспринимается как должное)...
ЗЫ: Получается что надо писать скипты под рус и инг версии?! мде
ЗЫ: Получается что надо писать скипты под рус и инг версии?! мде
Погоди, скрипт пишется не для винды (пусть она хоть китайская), а в нем учитываются названия активных окон, для которых он исполняется. Скрипты в основном применяются для автоустановки программ, а они есть как русские так и всякие. Главное чтобы скрипт "увидел" правильное название окна. Я сам все это познал 3 дня назад. Уже шпарю в этом AutoIt-е все программы (установки оных), которые нужны. Диск с виндой втыкается, а после автоматом сразу весь необходимый софт шпарит без участия юзера. Очень удобно, особенно когда в день по 10 компутеров грузишь.
Так получается, что скрипты вроде как отлаженные на винде, дают сбой на виртуальной машине!!! Вся беда в том, что при установке приложений нет строки статуса, а значит и диагностики. Как люди выкручиваются?
Далее если срубаем саму установку, то есть выходим из нея, то скрипт то продолжает работать!!! И пока его не срубишь процесс манагером, все стоит и ждет.
Я было пытался в WinWaitActivate ставить временные задержки, но там надо городить кучу if then для того что бы скрипт далше шол на выход. Может есть культурнее решение???
А меня наоборот, когда ставлю на реальной машине, не появляется индикатор установки и заключительное окно. В котором написано, что программа успешно установлена. При этом на соседней машине все нормально. Еще заметил, что эта неприятность происходит с программами устанавлеваемыми из msi пакетов. Не подскаже как это можно исправить?
Tanisустанавлеваемыми из msi пакетов
не легче к msi делать транформации и запускать с ключами?
ИМХО, автоит нужен там где остальными путями пробится не удалось
Может быть. Но я уже написал скрипты для 45 программ и не хочу начинать все с начала. Да и просто надо же разобраться в чем дело.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.