[Архив - Часть 1.1] AutoIt скрипты
Внимание! Тема переведена в архивное состояние (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе c AutoIt. Ну во превых, к моему удивлению, утилита (и компонента activeX) уже успела обновиться до версии 3.1.0 (7 фев 2005) и заполучить множество дополнительных функций (появилась возможность создавать граф. интерфейс к своим скриптам :). К сожалению русскоязычной справки пока нет. Скачать можно здесь Почему лишь руководство? Потомучто к программе прилагается обширная справка с описанием самой программы и команд, в т.ч. и на русском языке. Основные команды используемые в нашем случае в новой версии не поменялись. Я рассмотрю лишь самые азы, кот. необходимы для создания самого простого скрипта, в принципе этого достаточно для установки практически любой программы, просто знание дополнительных команд позволят сделать скрипт более компактным и красивым. На сегоднящний день имеется 2 распространненых способа по автоматизации установки 1. Использование утилиты AutoIt и файлов скриптов au3, кот. в последствии можно компилировать в исполнимые файлы exe, не требующие утилиты AutoIt.exe 2. Использование VBS и JS скриптов, этот способ можно расширить за счет использования activeX компоненты - autoitX (к слову сказать - я пользуюсь именно этим методом). Для примера создадим скрипт по установки Alcohol120%. Самое неприятное в его установки это окно с подтверждением установки SCSI драйвера. Это мы и поправим. Цитата:
Создадим файл с названием alc120.au3 в win1251 кодировке Теперь нужно заблокировать клавиатуру и мышь чтобы наглый пользователь не нажал что-нибудь или не сменил случайно фокус с активного окна во время работы скрипта. 'Блокировка клавы и мышки (многие команды предназначены для посыла в активное окно) BlockInput(1) Скрипт запустился и теперь ожидает запуска инсталяра и появление сигнального окна, кот. сообщит скрипту что программа запущена и можно продолжать выполнение скрипта. Для того чтобы узнать название окна нужно использовать спец. утилитку AU3Info.exe, кот. входит в комплект дистрибутива autoit. Запускаем ее, после чего запускаем дистрибутив Alcohol120% и доходим до того места где вылазит окно Мастер нового оборудования с вопросом об установке SCSI адаптера. Активируем его кликнув по заголовку мышкой и жмем CTRL+ALT+F, в результате в окне AU3Info информация о текущем окне зафиксируется: Цитата:
копируем название этого заголовка, там же можно посмотреть текст наличествующий в этом окне, если необходимо. Цитата:
'Ожидание окна установки 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, и используем в скрипте. Цитата:
'Послать в указанное окно ControlClick для кнопки с назв. класса Button9 ControlClick ("Мастер нового оборудования","Для закрытия мастера", "Button9") ControlClick ( "title", "text", controlID [, button] [, clicks]] ) title - название окна кот. ожидает скрипт для продолжения работы, text - любой текст в этом окне, нужен если последующее окно после нажатия кнопки, имеет такой же заголовок controlID - собственно идентификатор button - какую кнопку использовать "left", "right" или "middle clicks - количество кликов Последнее что нужно сделать - снять блокировку с клавы и мышки. 'Снятие блокировка клавы и мышки BlockInput(0) После этого скрипт завершается, а алкоголик заканчивает установку. Теперь нужно проверить работу скрипта. Cоздаем бат-файл: Цитата:
Если скрипт отлажен и проблем не возникает, для удобства можно скомпилировать его в .exe файл (содержит в себе утилиту autoit3.exe и скрипт .au3, кот. исполняется). Для этого можно воспользоваться утлитой Aut2Exe.exe (входит в комплект с дистрибутивом autoit3). Если нужно будет в последствии что-то изменить в скрипте, то полученный .exe файл можно будет конвертнуть назад в .au3 с помощью другой утилиты Exe2Aut.exe Что касается 2го способа установки, то просто приведу пример, установки Alcohol120%, кот. использую я Цитата:
--------------------------------------------------------------------------------------------------- Разобранный здесь скрипт тестировался в vmware 4.5 на WinXP.rus SP2 |
Статья Клас :)
Только я непонял чем лучше autoitX |
Думаю ешё надо добавить про Переменные и настройки AutoIt.
Переменная должна начинаться с символа $ и может содержать буквы, цифры и символы подчеркивания _. Цитата:
Цитата:
Цитата:
Цитата:
|
D@nil
Сам по себе autoitX ничем не лучше, скорей даже наоборот по функционалу уступает, а у меня он используется как расширение функций vbs-cкриптов. При использовании такой связки чуть меньше гемора и чуть больше возможностей. Т.е. если рассмотреть по шагам то получится Использование Autoit3.exe через CMD-файл или например WPI: 1. команда запуска скрипта через Autoit3.exe или компилированный скрипт 2. команда запуска устанавливаемого приложения 3. команда запуска возможных reg файлов 4. копирование дополнительных файлов По идее все это можно сделать через .au3, но как-то это некрасиво получится и громоздко :) Использование vbs, все 4 шага легко делаются в пределах одного VBS-файла, при этом не нужно использовать autoit3.exe или тем более компилить скрипт, этот же vbs можно использовать для обычной установке вне CD или DVD. Ага, переменные я оставил на потом, а про дебаг сам не знал :) |
EgOrus
Где тогда должна лежать утилитка autoitX Т.К. файл alc120.vbs ссылается на AutoIt AutoIt.Sleep 600 AutoIt.Send "{ENTER}" |
autoit - это не утилитка, это объект ActiveX
Set AutoIt = WScript.CreateObject("AutoItX.Control") - объявление объекта Autoit AutoIt.Sleep 600 - использование функции объекта Autoit, в данном случае функции sleep |
как ПРАВИЛЬНО отличить 2 "одинаковых" окна средствами AutoIt?
Вопрос: как ПРАВИЛЬНО отличить 2 "одинаковых" окна средствами AutoIt?
Т.е., они конечно не одинаковые, одинаковы только все параметры окон отображаемые с пом. AutoIt Reveal Mode. Реально текст в окнах разный, но AutoIt Reveal Mode показывает только одинаковые строки. Я нашел в хелпе по AutoIt вот такую штуку: DetectHiddenText, <on | off> но, даже если она действительно определяет скрытый текст, непонятно как добраться до результата сией операции... Через WinGetActiveStats, <Title Var>, <Width Var>, <Height Var>, <Xpos Var>, <Ypos Var> не выйдет, т.к. эта функция не извлекает текст окна. Сначала я сделал так, но здесь те самые два окна с одинаковыми заголовками и текстом застопорили скрипт: (проблемный фрагмент я выделил красным цветом) Код:
Run, %ProgramFiles%\\Sonic Foundry\\Sound Forge 6.0\\forge60.exe %systemdrive%\\install\\test.mpg Затем я таки поборол эту каку, но явно неправильным методом (3 сек. задержка + 2 двойных клика), т.к. в конце приходится убивать процесс (иначе он вызывает крит.ошибку). Правда, при этом информация о регистрации сохраняется. Код:
Run, %ProgramFiles%\\Sonic Foundry\\Sound Forge 6.0\\forge60.exe %systemdrive%\\install\\test.mpg |
Sanja Alone
надо было в существующую тему добавлять. А какая у тебя версия autoit? reveal mode был в версии 2.x на сколько я помню Opt("WinDetectHiddenText", 0) и потом используешь WinWait ( "title" [, "text" [, timeout]] , но вместо text попробуй использовать hiddentext из второго окна |
Цитата:
Цитата:
Сейчас качаю 3.1.0 - посмотрю, может там что-то придумали. Надеюсь, там уже есть определение окна по идентификатору. |
Установил, AutoIt v3.
пытаюсь запустить что нить комадндой Цитата:
говорит, что "Unable to execute the external program" но все лежит именно по этому пути. может есь какой секре, хотя в хелпе ясно сказано как запускать exe и cmd файлы. |
type
на сколько я помню, надо уазывать полный путь к программе, т.е. что-то типа c:\Install\adbacrob6.exe, можно использовать переменные окружения н-р: Run(@ProgramFilesDir & "\Alcohol Soft\Alcohol 120\Alcohol.exe") что касается твоего пути, то это рабочая папка, а не путь до программы |
ОО!!!!....зарабоооталааа))))
я Вам благодарен!) |
Вопрос из области флейма
Блин такая дилемма - с одной стороны, можно с помощью AutoIt забабахать конкретный диск с кучей софта и не мучиться, а с другой стороны, охота все-таки взять, помучиться и все-таки заставить приложение ставиться в "тихом" режиме с "родными" ключами. Что делать? |
Debby
Искать ключи на msfn'е, если нет пробовать самому исходя из инстолятора, а если уж и это не помогло то все равно придется мучиться пока скрипты составлять будешь :) |
Короче, обошел я эту гадость с одинаковыми окнами (они оказались абсолютно одинаковы даже для AutoIt Window Info).
Обошел опять не совсем правильно, но влазить в функции с указателями мне не хотелось (уж сильно мутно): Код:
...
Пример последнего - выбор компонент в установщиках K-Lite Codec Pack (по идее, можно применить silent.inf файл, но у меня параметр components=... игнорируется напрочь) |
Спасиб Sanja Alone метод WinSetTitle удобный, Возьму на заметку |
Как можно в текстовое поле ввести значение.
а то ввожу WinWait("AutoCAD 2002 Setup","&Serial Number:") Send("{4}") Send("{0}") Send("{0}") Send("{TAB}") Send("{1}") Send("{2}") Send("{3}") Send("{4}") Send("{5}") Send("{6}") Send("{7}") Send("{8}") Send("{TAB}") Send("{T}") ...... ну и в таком духе, как можно ввести в поле сразу все значение? |
type Можно.
WinWait("AutoCAD 2002 Setup","&Serial Number:") Send("400" & {TAB} & "12345678" & "{TAB}" & "T") А вобще смотри справку к AutoIt3 :beer: |
точно точно....D@nil так есть...надо читать хелп...
Цитата:
Send("400" & "{TAB}" & "12345678" & "{TAB}" & "T") Но ты выручил...спасибо.!!)) |
Ребята у меня проблема!!
Устанавливаю скриптом VirtulСD, пробую без компиляции все ок работает. Потом кампилирую как написано к руководстве. После кампиляции у меня получается вместо 29мбайтного файла установки 100кб? В чём проблема подскажте?? |
Aspirine
При компиляции, получается *.exe файл с тем же, что и у *.au3 именем. В твоем случае итоговое имя совпадает с именем файла-установщика самой проги VirtualCD и он перезаписывается поверх. Просто смени имя *.au3 файла, скажем на autoit_vcd.au3, тогда при компиляции получишь autoit_vcd.exe. А вообще, на кой тебе этот VirtualCD? Тот же Alcohol прекрасно монтирует его файлы *.vcd и *.000 (только при их добавлении, в списке нужно выбрать "все файлы", а не "все поддерживаемые образы") А если нужно создавать образы CD/DVD самостоятельно добавляя/удаляя файлы/каталоги, то можно воспользоваться UltraISO. К тому же, UltraISO понимает наверное все форматы образов, и может их конвертировать в iso, nrg, ccd, bin. P.S. Я когда-то тоже юзал VCD (v4 и немного v5), но тогда это был чуть-ли не единственный нормальный эмулятор. Все течет, все меняется... (C) не мое ---------------------------- type В твоем варианте посылки строкой символов, на слабой машине TAB может просто не успеть перевести фокус (если не увеличить "SendKeyDelay") на другое поле и будет бяка. IMHO, правильнее (и быстрее) будет не симулировать нажатия клавиш, а непосредственно ввести данные в соотв. поле. В какое? - посмотри с пом. AutoIt Window Info. Вот, как пример (установка Ultra ISO v7.5.1.965): Код:
;скрыть в системной панели индикатор AutoIt |
Sanja Alone
Огромное спасибо!!!!! Всё прекрасно заработало. Я сам нелавно начал изучать autoit крипты, поэтому ошибаюсь на лёгком и часто... Насчёт VirtualCD. Я диск другу делаю, котрый в компах ни буи-бум, и не желает учиться работать с другими прогами(он до сизх пор пользуется v4.3 если не ошиюбаюсь..) Сам я ЮЗАЮ АЛКОГОЛЬЧИК. |
Aspirine
Всегда рад помочь. А юзать Autoit я тоже недавно начал - около недели назад (да еще сдуру с версии 2.64). Потом пришлось по-быстрому переписать готовые скрипты под версию 3.1.0. Правда, конвертер немного помог :-) Сегодня поеду знакомому винду ставить - посмотрю на работу своего unattended-сидюка на реальной, а не вирт. машине... |
Вопрос к специалистам по AutoIt. Допустим, мне нужно изменить некую настройку в программе. Настройка выставляется при помощи чекбокса. Я не знаю отмечен чекбокс или нет, т.к. некоторые юзеры могли его отметить. Можно ли при помощи AutoIt выполнить проверку (отмечен или нет) и соответственно отметить чекбокс только в случае, если он не отмечен?
|
вышла в прошлом месяце AutoIt v3.1.1
http://www.autoitscript.com/cgi-bin/...t-v3-setup.exe русская справка http://www.autoitscript.com/cgi-bin/...n-v3.0.102.zip |
Vadikan.
Можно. Autoit Это позволяет ControlCommand ( "title", "text", controlID, "command", "option" ) option: IsChecked, "" (вернуть 1, если Button отмечена) Check, "" (отметить radio или Button) UnCheck, "" (снять отметку radio или Button) |
jurikorn
Спасибо! Видимо придется мне разбираться с AutoIt (а так лень было это делать ;-), если не найду другого решения своей задачи... |
Вникнув в проблему детальнее я не вижу как мне определить ControlID в моем окне. Это Word 2002, окно Tools | Options. Похоже все эти чекбоксы не имеют индивидуальных ControlID.
Через реестр, похоже, тоже не вариант, т.к. regshot отслеживает такой ключ Код:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\9040210900063D11C8EF00054038389C\Usage] |
Как определить Имя компьютера или его IP адрес?
С помощью _GetIP из справки возвращается значение -1. |
Существуют макрокомманды:
@IPAddress1 IP адрес первого сетевого адаптера. Может вернуть и просто 127.0.0.1. @IPAddress2 IP адрес второго сетевого адаптера. Равен 0.0.0.0, если отстутствует. @IPAddress3 IP адрес третьего сетевого адаптера. Равен 0.0.0.0, если отстутствует. @ComputerName Сетевое название ПК. |
Тут кто-то интересовался автоустановкой Lingvo. Я иногда юзаю этот словарик, ну и решил замутить скрипт автоустановки для своего Unattended DVD-юка.
Для автоустановки потребуются: 1. Образ первого сидюка Lingvo 10 Multilingual - LV10ML.iso (тупо скопировать содержимое сидюка в какой-либо каталог на автоустановочном CD/DVD и запустить setup.exe не получится - потребует вставить родной диск; с образа все работает) 2. Образ установочной дискеты Lingvo - ling10me_flp.ima (в zip-е всего-то 2Кб, но немогу прикрепить - меня назовут пиратом и заклеймят позором :( ) 3. Virtual Floppy Driver некоего Kenji Kato - (нужны 2 файла vfd.exe и vfd.sys) 4. Предварительно установленный и 1 раз запускавшийся Alcohol 120% или DaemonTools с хотя бы одним вирт. приводом в системе 5. Нижеприведенный скрипт (Все файлы должны лежать в одном каталоге, 2 файла vfd - в подкаталоге vfd) Код:
;Перед запуском этого скрипта, даже если Алкоголь уже установлен, его (Алкоголь) P.S. Устанавливается Lingvo долго (до 10 мин.), самый тормозной этап - "установка индекса" на образ дискеты. А когда индикатор "установки индекса" доходит почти до конца, может показаться, что комп (или мой скрипт) завис. Так и должно быть. Эх, где-то я такое уже видел... :) |
Возникла такая проблема:
при установке программы необходмо импортировать данные из reg файла делаю так Код:
Run("regedit.exe /s Fail.reg", "") Самое интересное то, что если уже когда Windows загрузилась запусить этот же файл установки то данные в реестр экспортируются. Может кто подскажет решение этой проблемы ? |
Solitude
Попробуй так: Код:
RunWait ( "regedit /S Fail.reg", "", @SW_HIDE ) |
Sanja Alone
Не работает... :-(( |
Solitude
Ну можешь еще так попробовать: Код:
RunWait ( 'regedit /S ' & @ScriptDir & '\Fail.reg', '', @SW_HIDE ) Чуть не забыл - все эти варианты работают только если reg-файл и скрипт находятся в одном каталоге. В противном случае, нужно писать полный путь. И еще одно - пробелы внутри кавычек (' ') стоят все по делу, а не для красоты - не удали случайно. P.S. С моего автоустановочного диска все ставящиеся проги (с пом. WPI, к-рый действует также через RunOnceEx) вносят изменения в реестр именно первым способом (см. предыдущий пост) - все данные импортируются. |
Sanja Alone
Вот этот спопсоб Код:
RunWait ( 'regedit /S ' & @ScriptDir & '\Fail.reg', '', @SW_HIDE ) Спасибо!! |
2 all
Возникла проблемка с Некоторыми комбинациями клавиш: Код:
... Кто нибудь с таким сталкивался? С чем это связано? Какие еще команды глючат? И как с этим бороться Прога качана по ссылке piterpen |
2 all
Здравствуйте, всем! Помогите решить такую проблему: при установке приложения нужно изменить путь установки, так, чтобы не прописывать точный путь, а указать текущую системную папку Program Files (т.е. как-то указать не C:\Program Files\... , а %systemdrive% или %programs%). Ну никак не хочет :( |
godoo
так Код:
@ProgramFilesDir |
2 all
Вопрос про комбинации клавиш снимается. Как оказалось в Win98 команда Send некоректно отрабатывает при заблокированной клавиатуре и мышке (BlockInput(1)) Если клавиатуру не блокировать - все комбинации клавиш работают нормально 2 godoo Скачай хелп - там описаны все переменные понимаемые AutoIT. Раздел Указатель Макро |
Madcap, спасибо за совет, но это я пробовал и хелп прочитал...
Вся проблема в том, при такой замене пути установки: WinWaitActive ( '', 'Выбор директории установки...' ) ControlSetText ( '', 'Выбор директории установки...', 'Edit2', '@ProgramFilesDir\Software\' ) вылезает окно: Директория @ProgramFilesDir\Software не может быть создана. Укажите другой путь. Работает только с полным заданием пути.:( |
godoo
Сегодны экспериментировал с тоталом, получилось вот так: Код:
;Ввод пути установки проги |
пример скрипта
скрипт сравнивается с часами другого компьютера и каждые два часа качает фаил в заведомо созданую папку. как можно грамотно урезать , а то через чур большой Код:
Opt('TrayIconHide', 0) |
Madcap, при таком способе перед тем путем, который стоит появляется вот это:
:\Ё ЁЁЁ Ё\Ё Ё ЁЁ ЁЁ\ |
На счет удаления предыдущего пути - можно послать в это окно кучу {DEL}ов.
На счет Цитата:
|
2 all
Скажите, плс, есть ли в этой проге какой нибудь аналог команды GO TO ? |
Madcap
В хелпе написано такое (FAQ - 4. Where is the "goto" command?): Цитата:
Код:
$your_variable = "исходное значение" |
godoo
Цитата:
Т.о., приведи код к такому виду: Код:
WinWaitActive ( '', 'Выбор директории установки...' ) И еще один момент: ты используешь директиву ControlSetText, и, следовательно, никаких del-ов посылать не нужно, т.к. в этом случае значение элемента Edit2 будет перезаписано новым и тебе не нужно беспокоиться о его начальном значении) |
ched3n
Красивее будет сделать так: 1. Заменяешь #include и _RunDos на RunWait(@ComSpec & ' /C твоя_команда', '', @SW_HIDE); 2. Приводишь скрипт к виду: Код:
;устанавливаем выход из скрипта по хоткею (в данном сл. это Ctrl+Alt+Z; выбор за тобой) P.S. Синтаксис команд net use/time я оставлю на твоей совести, но на правильный он непохож; к тому-же, net use к синхронизации времени не имеет никакого отношения. |
спасибо за помощь
net use \\comp /user:user password авторизируется на удаленном компьютере net time \\comp /set /yes синхронизирует время локального компьютера с удаленным |
Sanja Alone
Большое спасибо. |
Ребята, все получилось!!!
ОГРОМНОЕ ВАМ СПАСИБО!!! |
Мой первый скрипт!
Установка FAR Manager, можете меня поздравить. И не говорите, что Фар можно как то проще поставить. Если просто разархивировать его в соответствующию директорию получится, во-первых, отсутствие ярлыков, во-вторых, в путях его системных не будет... В общем этот вариант самый оптимальный. Вот текст: BlockInput(1) Run("Far1705.exe") WinWait("FAR version 1.70 beta 5","",0) Sleep(1000) Send("{TAB}") Send("{ENTER}") WinWait("The FAR manager SETUP","&Folder to install FAR",0) Send("{ENTER}") WinWait("The FAR manager SETUP","Done",0) Send("{ENTER}") WinClose("FAR manager") BlockInput(0) |
молодца
|
Izvr
Цитата:
Цитата:
Теперь по сути. В скриптах, вместо WinWait лучше использовать WinWaitActive или связку WinWait + WinActivate. Во-первых, это избавляет от необходимости угадывания времени Sleep-а, и, во-вторых, позволяет избежать проблем с последующим несвоевременным нажатием клавиш. И еще одно замечание: не нужно в функциях ожидания окон задавать нулевые таймауты. Смысл таймаута такой - ждать X окно не более Y секунд и в любом сл. идти дальше. При таймауте=0 будет сделана одна проверка на наличие искомого окна и сразу будет выполнена следующая функция, что также может вызвать проблемы, т.к. посылаемая комбинация клавиш передастся не в активный элемент окна, а х.з. куда (по ум. пауза для оконных операций у AutoIt составляет всего 250 мс). Для окон установщика Фара этого с головой хватает, но ведь может попасться приложение и с загаженными всяким мусором, медленно появляющимися окнами. Установка Far-а: Код:
AutoItSetOption("TrayIconHide", 1) |
Sanja Alone
Цитата:
Цитата:
Цитата:
|
Izvr
Цитата:
Код:
@echo off У меня из подобного файлика (ес-но, без setenv) еще и шрифт в Винду добавляется для понимания Фаром укр. буковок. И пусть тебя не беспокоят "лишние" файлы в каталоге установленного Фара. Если Фар придется когда-нибудь удалять (в сязи с острым приступом тоталкоммандеризма или еще чего-то пострашнее) то заставить Фар удалить и эти файлы можно просто дописав их имена в файл Uninstall.lst в каталоге Фара. Цитата:
|
Sanja Alone
Ты неправ, 0 означает бесконечность. Попробуй запусти 2 нехитрых скрипта: Код:
WinWait ("Название окна","Текст", 1) Код:
WinWait ("Название окна","Текст", 0) |
Цитата:
|
Madcap
Да, так и есть: WinWait ("Название окна","Текст", 0) дает такой же результат, как и WinWait ("Название окна","Текст"). Ну что тут сказать - такие выкрутасы должны быть описаны в справке. А там только сказано, что это "Timeout in seconds" и никаких ремарок (Remarks - None). Камень в огород писателей :) справки к AutoIt. |
могет совместно над чем нить поработаем
хотя .... о чем это я |
to all
Такая командочка: Код:
if WinWaitActive ( "Окно1", "") or ( "Окно2", "") then Если появляется "Окно2" - то скрипт висит. Что я делаю неправильно? |
Madcap
Цитата:
Код:
if WinWaitActive ( "Окно1", "") or WinWaitActive ( "Окно2", "") then |
Sanja Alone
Все равно не работает :( тоже самое что и раньше - второе окно не хочет искать. Вот у меня маленький скриптик который, по идее, должен определить какое из двух видов окошек открылось Код:
if WinWaitActive ( "Калькулятор", "") or WinWaitActive ( "Безымянный - Блокнот", "") then |
Madcap
Гм, а тут ничего и не может работать - у функций ожидания окон таймауты равны бесконечности :) Рабочий вариант должен использовать другие функции (мгновенной проверки): Код:
While 1=1 Код:
While 1=1 |
Sanja Alone
Честно говоря я думал что оператор or позволяет сделать проверку и с бесконечными таймаутами. Огромное спасибо. ЗЫ: Все таки это были кривые руки :) |
Рад приветствовать единомышленников!
Уже более двух лет автоматизирую AutoIt'ом все, что можно и не можно. Начинал, естественно, с "автокликанья" по окошкам программ-установщиков. Но сейчас мне обидно за любимый AutoIt, когда его используют исключительно в этих целях. Мои скрипты отвечают за весь процесс установки системы, а также выполняют ряд полезных функций в текущей работе. Главное, что дал AutoIt, это более мощные и разнообразные инструменты, по сравнению с обычными батниками, и логику, по сравнению с обычными inf- и reg-файлами. Поделюсь несколькими фирменными приемчиками. Проверка на стадии cmdlines наличия железки и установка дров для нее: Код:
Opt('ExpandVarStrings', 1); default = 0 Код:
..... Код:
..... Код:
[ИМЯ_СОЕДИНЕНИЯ1] Для перевода reg-файлов в коды AutoIt написал простенький макрос для Word: Код:
Sub ОбработкаREG() |
Всем привет! У меня вопрос, так как нехотел создавать еще одну тему! У меня есть скрипт "Lan XP SP2.vbs". Что он делает: запускает "Мастер настройки сети" и настраивает локальную сеть, но после настройки лок. сети открывает автоматом общий доступ к папке "Общие документы" (SharedDocs)
Код:
Set WshShell = WScript.CreateObject("WScript.Shell") Код:
[COMMANDS] |
Не выходит установить Agnitum Outpost 2.7 через AutoIt: не закрывается последнее окно, где спрашивается
про перезагрузку компа. На это окно вообще ничего не действует. Подскажите пожалуйста, как же с этим можно справиться. Вот мой скрипт: Код:
|
DenchikK
Попробуй "WinKill" или "ProcessClose". |
DenchikK
Рабочий скрипт для установки Agnitum Outpost 2.7 Код:
AutoItSetOption("TrayIconHide", 1) |
bogomolv
Sanja Alone Спасибо огромное! Я, кстати, разобрался, отчего у меня не работал скрипт - в окне Создать Конфигурацию я нажимал - автоматическая, и при установке AutoIT'ом почему-то сразу пропускался мастер и сразу выдавалось последнее окно. С этим то я разобрался. Родился новый вопрос, может быть подскажете: для автоматизации работы нужно запустить несколько приложений и брать оттуда некоторые данные. добавлять в другие и.т.д. Проблема в том, что прочитав справку и форум по AI, я так и не нашёл, возможно ли точно переходить в конкретнозаданное запущенное окно. А то метод Alt+Tab не всегда срабатывает. Заранее спасибо. |
DenchikK
Цитата:
|
DenchikK
Sanja Alone Без "WinActivate()", конечно, не обойтись. Но можно оперировать вводом-выводом, и не активируя соответствующие окна: Код:
$GetSN=ControlGetText('keygen', 'RU', 'Edit1') |
bogomolv
Цитата:
СПАСИБО!!! |
Все супер! И AutoIt просто не заменимая вещь! Как я до него жил - ума не приложу.. :) Так же не могу понять как собственно мне получить код возврата кнопки "ОК" или "Cancel" при использовании функции MsgBox???
Допустим, что-то типа: MsgBox (1, "", "Запускать? ") и необходимо обработать нажатие кнопки, и дальше отправить по условию, как это можно сделать, кто нибудь подскажет? Спасибо! |
vserd
Рабочий скрипт немного сложнее: Код:
While Not WinExists('Мастер Активации') Если кто-то:) открыл бы AutoIt.chm, то без труда там нашел: Код:
If MsgBox (1, "", "Запускать? ")<>1 Then Exit |
bogomolv
Цитата:
А о том, что ты говоришь - я знаю, но без активации оно не всегда должным образом работает :( Да, ты мне напомнил - я пару месяцев назад для знакомого делал автоустановку ABBYY FineReader 7. Выкладываю для народа: Код:
AutoItSetOption("TrayIconHide", 1) Сама прога бралась отсюда (43 749 965 байт) Укр. язык (1 639 936 байт) - может кому и нужен :) |
Sanja Alone
С интересом познакомился с использованием функции StringSplit(). Даже не знал о ее существовании. По оптимизации кода: а) пару десятков строк можно сэкономить, используя вместо Run('setup.exe /L1049') команду RunWait('setup.exe /L1049 /v/qb'); б) в одном случае из 10 введенный серийник оказывается неверным. Поэтому "зацикливаю" его ввод (см. пример); в) для настройки установленного FineRеader можно включить в скрипт RunWait('regedit /s FineRеader.reg') и FileCopy($iDir&'Untitled.fbt', $pDir, 1). Общие вопросы: б) зачем обнулять переменные на выходе из скрипта? в) категорически не согласен с использованием BlockInput(). Отлаженный скрипт может быть неожиданно прерван на чужой машине выскочившим окошком какого-либо сообщения Windows об отсутствующих дровах и т.п. Что делать в этом случае? То же самое относится и к Opt('TrayIconHide',1). Наоборот всегда включаю Opt('TrayIconDebug',1), чтобы можно было понять, чего ждет "зависший" скрипт. |
bogomolv
Ой! :blush: да я не думал что все так просто! Начал чего то выдумывать и совсем потерялся, уйдя от правильной мыслишки! Спасибо! |
bogomolv
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Sanja Alone
Про установку не "по умолчанию". А что не "по умолчанию" ты устанавливаешь? Как правило, все можно потом задействовать/отключить через реестр. Например, новостной канал отключается удалением ключа "FineReader7NewsReaderPro" в ветке HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run. Про FineRеader.reg и Untitled.fbt. Эти файлы воспроизводят личные пользовательские настройки. Настриваешь FR, сохраняешь через меню "Опции" в Untitled.fbt, копируешь. Незапоминаемые Untitled.fbt настройки интерфейса находим в реестре (ветка HKCU\Software\ABBYY\FineReader\7.00) и сохраняем в FineRеader.reg. Есть ли нужда пересылать их? Там все из разряда "мне так нравится". Про переменные $iDir и $pDir. Это имена папок "откуда и куда" идет установка. А ты что подумал? Про серийник. Иногда и 30 раз проходит с первого раза. А иногда через раз начинает ругаться, что неверный. М.б. это проблема конкретной версии... Про Ctrl+Alt+Del и BlockInput(0). Я знаю. Знаю и то, что не надо трогать мышь и клавиатуру во время работы скрипта. Так от кого эта защита? А вот людей, которые потом будут этим пользоваться, вряд ли стоит пугать зависшим компьютером. |
bogomolv
Про не "по ум." - англ. язык интерфейса, я это написал в комментариях к скрипту. И я не думаю, что тут поможет реестр, т.к. отсутствующий компонент посредством реестра не включится :) Цитата:
Про переменные $iDir и $pDir - я понял что это, но не понял два момента: - можно ведь просто написать FileCopy('Untitled.fbt', $pDir, 1), или у тебя скрипты лежат в каком-то отдельном каталоге? - куда пихать тот самый Untitled.fbt. Это ведь может быть не только каталог проги, но и что-нить типа Doc&Set\Имя_юзера\AppData\Abbyyy_блаблабла или ты и это станешь оспаривать? Цитата:
Цитата:
|
Sanja Alone
Про установку не "по умолчанию". Такие вещи, на мой вгляд, лучше задавать непсредственно в установщике, либо отредактировав msi-файл, либо создав для него mst-файл дополнительных настроек установки. Использую для этого Orca (MSI Table Editor). С его помощью записал то, что тебе нужно, в full.mst (запускается FineReader.msi /qb TRANSFORMS=full.mst). Вышлю вместе с другими файлами, когда ответишь по мылу. Про пути. $pDir=@ProgramFilesDir&'\ABBYY FineReader 7.0 Professional Edition\' $iDir=@ScriptDir&'\'. Но это сейчас, когда пакую все файлы дистрибутива и настроек в SFX RAR архив. Раньше было по-другому. Про 2 больших категории юзеров. Так к какой категории относятся те, кто любит трогать?:) |
Наверное всё-таки напишу в эту тему, так как в теме об установке WinAmp обсуждается немного не то.
О наболевшем. Об установке WinAmp. Хочется сделать её универсальной - в том смысле, чтоб скрипт AutoIT срабатывал всегда, а не только в случае установки на чистую (или не чистую) систему. Загвоздка в том, что WinAmp при установке, в зависимости от системы, задаёт РАЗНЫЕ вопросы - и естественно скрипт может не сработать. Первая вещь, на которой иногда спотыкается установка - это вопрос о регистрации. Победилась просто - перед установкой reg файлом вносятся необходимые регистрационные данные. Но есть второй подводный камень - на чистой системе задаётся вопрос о перезапуске, на системе, в которой уже стоял WinAmp - этот вопрос не задётся. Как бы сделать обход этого - например оператором IF, чтоб скрипт, если не появилось окно с вопросом о регистрации, дальше продолжал свою работу, а если появится - отмнил бы перезагрузку ну и проч. по плану? И ещё один вопрос, правда не очень в тему: на второй странице Sanja Alone сказал, что образы от Virtual CD монтируются Алкоголем. Я сам уже давно на Алкоголь перешёл, но есть куча образов от VCD. Обрадовался - попробовал - не вышло - Алкоголь правильно распознаёт размер, но не может считать информацию. Образы от VCD 4.5, Алкоголь: 3 последних. |
DenchikK
Цитата:
Код:
If WinExists ( 'Имя', 'Текст' ) Then По поводу регистрации - раз уж установка делается скриптом, то пусть и регистрация делается им же (и без "лишнего" reg-файла): Код:
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Nullsoft\Winamp", "regname", "REG_SZ", "xxxxxxxxxxxxx") Цитата:
|
Никак не могу всё-таки справиться с winamp : установка происходит нормально, только не в первый раз. Вот привожу пример того, что наваял:
Код:
Run('setup.exe') |
DenchikK
А ты не пробовал версию winamp.msi? C ней таких проблем нет. |
2 DenchikK
На сколько я понял оператор WinExists проверяет наличее окна только 1 раз, в твоем случае сразу после нажатия клавиши Цитата:
Цитата:
Внимательно почитай посты на 4 странице, там Sanja Alone растолковывал мне как определить какое именно окно открылось. Это должно подойти и тебе. |
Слегка получилось со скриптом для winamp (и новый робоформ построил на его основе), только работает странно - скрипт не закрывается, приходится вызывать taskkill - что не есть гуд. И вторая неприятная вещь - я выставил таймаут для нормальной работы скрипта - боюсь что на других компах может и не сработать.
И заодно бы хотел спросить про функцию проверки отметки чекбокса. Примерно в половине программ она не срабатывает. Это нормально, или я что-то не так делаю? Там где не срабатывает, есть отличительная черта: не совпадение надписи на чекбоксе с тем, что выдаёт AutoIT Пример: Offline Explorer 3.8, Recovery My Files 3.70. А вот так например сработало для FastStone: Код:
ControlCommand ( 'FastStone Image Viewer', 'Completing the FastStone Image', 'Button4', 'UnCheck', '' ) |
DenchikK
Цитата:
|
DenchikK
Начну с самоцитаты из своего первого поста: "Мне обидно за любимый AutoIt, когда его используют исключительно в этих [автокликанье] целях". На другом ресурсе (где мы с тобой уже встречались) был предложен достаточно простой и быстрый(!) способ автоустановки WinAmp путем копирования свежеустновленной программы и ее данных в реестре. Установка WinAmp (и большинства других программ) автокликаньем имеет огромный недостаток - зависит от версии программы. В результате с выходом каждой новой версии любимой программы, как правило, приходится переписывать autoit-скрипты , что со временем изрядно надоедает. Поэтому советую обращаться к AutoIt лишь тогда, когда другие средства установки неприменимы. Способ установки копированием реестра также зависит от версии. Но все отличия, скорее всего, будут локализованы в одной-двух отвечающих за настройки программы ветках реестра, которые можно элементарно скопировать целиком и заменить в соответствующем reg-файле. К тому же при этом способе часто удается использовать "скрытые" возможности самой программы. Например, простое копирование mplayerc.exe можно сопроводить RunWait(@ProgramFilesDir&'\Media Player Classic\mplayerc.exe /regvid') и зарегистристрировать таким образоом на Media Player Classic расширения видеофайлов. Остается добавить в реестр некоторые свои любимые настройки программы и - ву-аля. Интересная комбинация может получаться при синтезе нескольких способов установки. Например, в папку $oem$\$Progs\WinRAR можно положить не развернутую копию программыных файлов, а только два из них - Settings.reg (сохраненные из самого WinRAR настройки) и rarreg.key (лицензионный ключ). Тогда для автоустановки WinRAR достаточно будет двух команд RunWait ('regedit /s "@ProgramFilesDir@\WinRAR\Settings.reg"') и RunWait ('@ScriptDir@\wrar35b7ru.exe /S') (именно в этой последовательности!). Относительно же твоих вопросов о том, почему в кокретном случае не срабатывает та или иная команды или не закрывается то или иное окно, на них ответить трудно. Для этого под рукой нужно иметь твою программу в той версии, которую ты мучаешь и т.д. Да и обсуждение, вряд ли для кого-нибудь, кроме тебя лично, будет представлять интерес. А раз так, тебе самому и решать возникающие проблемы - перебирай по очереди различные способы слежения за окнами в AutoIt (только параметром Opt('WinTitleMatchMode', 1-4) можно задать 4 таких способа), пробуй все известные способы нажимания на кнопки (различные Control, Send (особенно Send('горячая клавиша'), MouseClick), читай и перечитывай AutoIt.chm... Sanja Alone Цитата:
В продолжение начатого с ним разговора могу напомнить, что у установщика INNO SETUP есть ключ /COMPONENTS="comma separated list of component names", так что можно вполне обойтись silent-установкой без чекбоксов. При юзании устновщиков INNO SETUP можно также сохранить параметры ручной установки ключом /SAVEINF="filename", а потом воспроизводить их через /LOADINF="filename". |
bogomolv
Цитата:
Цитата:
Цитата:
1. Ключи 2. Rar SFX 3. AutoIT Цитата:
прочитать, как можно решить анологичную проблему. Программы меняются - а принцип решения может быть одинаковым. Цитата:
Цитата:
|
Цитата:
Такой вопрос. Как можно кликнуть на скрытую кнопку? Код:
|
DenchikK
Во-первых, в интернете, как и в бане, все равны. Так что, не "выкай" (и тем более не делай это с маленькой буквы - я один!). Во-вторых, ну и зачем ты это написал? Не хочешь слушать - не слушай. Я ж все равно не проверю, как ты реализушь мои бесценные наставления! А по содержанию твой пост - сугубо личное послание-оправдание. Для этого есть почтовый ящик.:) DenchikK & Madcap Цитата:
Вы же обсуждаете, "можно ли кликнуть на скрытую кнопку" или "как бы сделать обход этого - например оператором IF". Кто ж за вас это сделает? Вот и попробуйте кликнуть на скрытую кнопку или сделать обход оператором IF. А результаты доложите...:) |
Всем привет.
Аналогичная проблемка. Иногда выскакивает окошко, иногда нет. В случае, когда оно есть - скрипт удачно доходит до конца. В случае, когда окошка нет - не происходит отработки ветки "Else". Что не так? Код:
Run("ezAntivirus.exe") |
Цитата:
Ничего не поделаешь - подводи куда нужно курсор и Send('{SPACE}') Воспользовался этим нехитрым методом: Код:
... При запуске на виртуальной машине или другом компьютере стрелка уезжает совсем не в то место, где нужно кликнуть |
biork
По MouseClick. Вместо этой команды Tab'ом подведи к кусор к кнопке и кликни ее. Что-то вроде Send({Tab}{Enter}). По неожиданным окошкам. Не знаю конкретной проблемы, но в общем случае для неожиданных окон и любых других нежелательных оказий в AutiIt есть чудная процедура AdlibEnable('Имя функции'). Пример. На стадии cmdlines иногда выскакивает сообщение о заканчивающейся виртуальной памяти. Для его погашения в cmdlines.au3, отрабатывающем все действия на данной стадии, задаем функцию NonVMEM Код:
AdlibEnable('NonVMEM') |
biork
Если сильно хочется MouseClick-нуть, то сначала обрати внимание на опцию Код:
Opt("MouseCoordMode", 1) ;1=absolute, 0=relative, 2=client |
Я написал простенький конвертер для перевода reg-файлов в директивы AutoIt (RegWrite и RegDelete).
Конвертер понимает все типы параметров (известные AutoIt-у), поддерживает удаление веток/параметров. Параметры типов REG_RESOURCE_LIST (hex(8)), REG_FULL_RESOURCE_DESCRIPTOR (hex(9)), REG_RESOURCE_REQUIREMENTS_LIST (hex(a)), REG_QWORD (hex(b)), а также неправильные параметры типа DWORD (hex(4)) пропускаются. Ограничения: не понимает Unicode, т.е. исходные reg-файлы должны быть в DOS или Win кодировках (REGEDIT4). Особенности: медленная работа с большими файлами (675Кб ветка HKLM\SYSTEM\CurrentControlSet\Services, выбранная для теста, обрабатывается 4,5 мин. на AXP-1500MHz). Я не считаю этот момент проблемой, т.к. конвертер предназначен не для преобразования реестра, а для дополнения AutoIt-скриптов установок прог их настройками из reg-файлов. Кому нужен - прошу Если при использовании столкнетесь с какими-то недоработками - мыльните. Кроме того, скрипты установки н-рых программ находятся на этой странице. P.S. Исправил проблемы с \\, \", одинарными кавычками внутри параметров ('), двоеточиями в названиях параметров, параметрами по умолчанию (@), символами равно внутри строковых параметров. |
Sanja Alone
Well job! |
Люди подскажите пожалуйста как можно из экселевской таблички скопировать данные (количество строк не фиксированное, столбцы фиксированные)?
|
Geck
Обработать xls-файл вряд-ли удастся - слишком сложная структура файла. А вот обработать окно с открытой таблицей легко - через Send('^{Ins}) или ControlGetText(). |
bogomolv
Спасибо... А как можно определить когда данные закончатся? Можно конечно вручную править количество повторов в цикле, но это не выход. |
bogomolv
Кстати через ControlGetText() не получается, только через Send |
Добрый вечер
Вопрос по поводу скрипта от Lingvo Сдела папочку Lingvо, сложил туда все нужные файлики: /vfd AutoIt3.exe ling10me_flp.IMA lingvo.au3 lingvo.exe LV10ML.iso Запускаю AutoIt3.exe lingvo.au3 Доходит до принятия лицензионного соглашения и виснет. Причем стоит точка на отказе принятия лицензионного соглашения Может где-нибудь в скрипте ошибка? Я так понимаю ошибка должна быть здесь: ControlClick ( 'ABBYY Lingvo 10 Multilingual Dictionary', 'Лицензионный договор', 'Button3' ) Такой функции не нашел в описании. AutoIT 3.1.1 |
demo369
Цитата:
Цитата:
Почему скрипт может не работать: 1. Не выполнен пункт 4 оригинального поста - Alcohol или Daemon ни разу не запускались. 2. Другой дистрибутив Lingvo и, следовательно, отличные от приведенных в скрипте названия окон, текст в окнах, названия эл-тов (ну не Button3, а Button2, например), другое имя msi-файла в корне исошки Lingvo и т.п. Для выяснения точной причины, добавь в начало скрипта строку Opt("TrayIconDebug",1), а также закомментируй AutoItSetOption("TrayIconHide", 1) и BlockInput ( 1 ). Запусти скрипт снова, и, когда он зависнет, наведи мышь на иконку AutoIt-а в трее и увидишь причину зависания. Цитата:
P.S. Извини за неоперативный ответ - я только вчера купил новую интернет-карточку. |
Здравствуйте товарищи, радует что тема растет и множится.
Написал скрипт для автоматизации процесса скидывания CD и DVD дисков на HDD (мне нужно было скинуть большое количество фильмов). Так вот вопрос такой, хотелось бы сделать прогрэсбар для наглядности, но каким образом обновлять его, что-то не представляю. Вернее есть решение, считывать объем инфы кот. уже скопировалась и сравнивать с общим объемом компакт диска, но это работает только в случае копирования мелких фалов, при копировании фильма индикатор с 1% будет прыгать на 100%. Есть ли какое-то решение? Код:
; Скрипт полностью автоматизирует процесс копирования, от пользователя требуется |
demo369
Цитата: Запускаю AutoIt3.exe lingvo.au3 В принципе, так тоже должно работать, т.к. я применял макрос @ScriptDir в путях, но я всегда использую откомпилированные в exe скрипты, а данный вариант запуска установки Lingvo не тестировал вовсе. Сделал экзешник. Ситуация не поменялась ;) Цитата: Может где-нибудь в скрипте ошибка? Пару десятков раз проверял на VMWare и 2 раза на реальных компах - все было ОК. Почему скрипт может не работать: 1. Не выполнен пункт 4 оригинального поста - Alcohol или Daemon ни разу не запускались. Пользуюсь Alcohol. Специально запускал. По идеи если его не запустить, то он и образ не должен примонтировать,а это он как раз делает. 2. Другой дистрибутив Lingvo и, следовательно, отличные от приведенных в скрипте названия окон, текст в окнах, названия эл-тов (ну не Button3, а Button2, например), другое имя msi-файла в корне исошки Lingvo и т.п. LV10ML.iso - размер 650,170,368 байт MSI файл как и в скрипте. названия и кнопки такие же. смотрел через AutoIt Window Info и через IsoBuster. Для выяснения точной причины, добавь в начало скрипта строку Opt("TrayIconDebug",1), а также закомментируй AutoItSetOption("TrayIconHide", 1) и BlockInput ( 1 ). Запусти скрипт снова, и, когда он зависнет, наведи мышь на иконку AutoIt-а в трее и увидишь причину зависания. Просто выдает что скрипт остановлен (paused) lingvo.exe Цитата: Такой функции не нашел в описании. AutoIT 3.1.1 Плохо искал: ControlClick ( "title", "text", controlID [, button] [, clicks]] ). При просмотре chm-ки, для более удобного поиска, переключайся на закладку "Указатель" и там вводи то, что ищешь. При этом работает автодополнение и ты быстро найдешь искомую функцию. Угу, нашел. Даже пробовал, добавить button и clicks. Рез-тов не дало. P.S. Извини за неоперативный ответ - я только вчера купил новую интернет-карточку Это не страшно ;) Спасибо что ответил. Могу еще скриншот скинуть на окошко, на котором скрипт останавливается. Может что-нибудь прояснится. |
demo369
Очень неудобно читать твои посты - pls, пользуйся тэгами цитат quote. Цитата:
Цитата:
Что я могу еще придумать: 1. Можно заменить Код:
WinWaitActive ( 'ABBYY Lingvo 10 Multilingual Dictionary', 'Лицензионный договор' ) Код:
ControlClick ( 'ABBYY Lingvo 10 Multilingual Dictionary', 'Лицензионный договор', 'Button3' ) Код:
If ProcessExists ( "ps.exe" )<>0 Then |
EgOrus
Цитата:
1. Перед началом копирования определять объем свободного места на целевом диске; 2. Разность (текущий объем свободного пространства - начальный) сравнивать с общим объемом компакта. Данные на винт ведь не 700-метровыми кусками пишутся :) |
Цитата:
1. рассчет занимаемого места целевой папки куда ложится фильм (для диска создается отдельная папка с меткой диска) 2. сравнения полученного значения с общим объемом компакта. Но вся заковырка в том, что данные именно 700 метровыми кусками и пишутся. Может конечно что-то в системе нужно изменить, но у меня именно так и происходит, под фильм сразу резервируется все 700 метров в самомом начале копирования, т.е. в целевой папке создается 700метровый файл. Есть еще один вариант, копировать через @comspec copy , возможно в этом случае копирование происходит без резервирования. |
EgOrus
Цитата:
Тебе нужна xxcopy (244 527 байт) - эта вариация на тему xcopy имеет массу возможностей и копирует без предварительного резервирования места. Но потом не ругайся на обрубки файлов, если прервешь процесс :) |
Sanja Alone
Да я знаю эту утилитку, но ни xxcopy ни robocopy меня не устраивают, лучше уж я пожертвую прогрессбаром, чем буду использовать сторонние утилитки. К моему удивлению на родном форуме также ничего по копированию больших файлов не придумали. Спасибо тебе за помощь. |
Здравствуйте.
Обращаюсь за помощью. Слепил скриптик для автоматической установки программы на компьютер W2000 pro SP4 под правами опытного пользователя. Но инсталляция просит наличие прав администратора. Как бы проблема решаема с помощью RunAsSet ( ["user", "domain", "password"] . Инсталяционный пакет находится на сететвом ресурсе. Но возникает проблема: run(‘\\Maim\install\setup.exe’) Инсталяция запускается, но сообщает об необходимости прав администратора а если RunAsSet ( "Admin", @Computername, "password" ) run('\\Maim\install\setup.exe') то выдает ошибку Error: Unable to execute the external program. Системе не удается найти указанный путь если RunAsSet ( "Admin@Computername, "password" ) run('D:\install\setup.exe') то запускается Подскажите причина такого глюка? Или я не правильно делаю? |
Всем привет!
В очередной раз прошу помощи у знающих и понимающих :-) Совершенно ламерский вопрос. Как скопировать файл с CD диска на HDD в процессе выполнения скрипта? Скрипт запускается из RunOnceEx.cmd. Оба файла, котырые нужно скопировать лежат в той же дирректории что и сам скрипт. Вариант, приведённый ниже не срабатывает: папка создаётся, но файлы не копируются Код:
DirCreate("D:\folder1\folder2") В чём косяк? (Все остальные команды из RunOnceEx.cmd, а так же сам скрипт, фрагмент которого приведён выше, выполняются нормально) |
biork
Код:
FileCopy( @ScriptDir & '\setup.exe', 'D:\folder1\folder2\' ) |
Speed_Perm
Цитата:
Код:
DriveMapAdd( "device", "remote share" [, flags [, "user" [, "password"]]] ) Код:
Run('X:\setup.exe') |
Добавил скрипт для автоустановки переводчика Pragma 4.xx.xxxx.
Да, можете посмотреть на применение функции AdlibEnable() на примере этого скрипта. Все комментарии (как всегда) внутри скрипта. |
Sanja Alone
Цитата:
Там вообще с сетью постоянные заморочки. Как раз для простого и быстрого подключения из под WinPE ко второму компьютеру и пытался прикрутить эту функцию. Фиг-вам. Пришлось оставить скрипт, основанный на NET USE: Код:
For $i=1 to 15 |
Продолжим разговор об интересных функциях?
Очень понравилась функция StringSplit. Особенно одно ее практическое применение, которое подсмотрел в предлагаемом для include файле File.au3. Теперь одной строчкой считываю содержимое текстового файла в массив $list=StringSplit(FileRead($f,FileGetSize($f)),@CRLF) и делаю с ним, что хочу! В частности, функция очень пригодилась для считывания структуры каталогов драйверов OEM-установки Windows (папка $oem$\$1\drivers). Раньше приходилось следить и жестко прописывать все пути к драйверам для их автоустановки на стадии CMDLINES (CMDLINES.TXT у меня запускает CMDLINES.AU3, в котором расписан сценарий установки дров и инициализации настроек системы). Теперь в CMDLINES.AU3 вместо многостраничного перечня действий со всеми своими и чужими драйверами (с которыми когда-либо встречался и могу встретиться еще) у меня стоит красивая конструкция: Код:
;Установка драйверов устройств Теперь подготовка дистрибутива для установки системы на чужой машине сводится к простому копированию из архива заготовок драйверов для $oem$\$1\drivers и небольшой правке unattended.txt. Счастливому же владельцу машины достается комплект автопереустановки системы, похожий на те, что идут с ноутбуками… |
1. Подправил скрипт для Pragma 4.x: теперь можно посмотреть на применение функции AdlibEnable(), а также опции OnExitFunc - здесь она необязательна, но уместна в кач-ве демонстрации.
2. Переписал скрипт для ABBYY FineReader 7.0: теперь 3 варианта установки, две страны (Украина, Россия), зациклен ввод серийника (действительно иногда первый сгенерированный серийник не подходит). bogomolv Цитата:
Но тут есть заковырка: если массив у тебя уже объявлен, например как $Array[1], то элемент $Array[0] - это не длина массива, а всего лишь первое внесенное значение (у меня была необходимость в предопределенном массиве в кач-ве временного хранилища многострочных hex-параметров). Для дополнения такого массива новым элементом его нужно ресайзнуть ReDim $Array[UBound($Array) + 1],а в циклах вместо For $i=1 To $Array[0] писать For $i=1 To UBound( $Array, 1 )-1. И еще одна особенность AutoIt-а в плане работы с массивами: когда я переписал конвертер так, чтобы он использовал 2 массива (вх. и рез.), а не добавлял построчно данные в файл, он (конвертер) стал работать более чем в 3 раза медленнее (~16 мин.). Вот тебе и ОЗУ :( Самое забавное, что я еще пробовал третий вариант: построчное чтение вх. файла с такой же построчной записью результирующих строк в вых. файл - выполняется 6 с небольшим минут (против 4,5 в исх. вар-те), правда исп-ся минимум памяти. (это время конвертации моего тестового 675Кб reg-файла - ветка HKLM\SYSTEM\CurrentControlSet\Services) Пришлось оставить исходный вариант алгоритма: читаем все в массив - определяем тип строки - составляем выходную строку - пишем в файл - повторяем до конца массива (для многострочных параметров, как я уже сказал, исп-ем доп. динамический временный массив). Ух, удалился я от темы, ну да ладно... К вопросу о драйверах: я использую метод установки с CD. Вполне себе нормально все ставится... и без скриптов. Правда, пока приходилось ставить Винду только на VIA и nForce2-based платформы, с другими может и не так все гладко. А у тебя создается некое подобие персонифицированного для конкретной машины набора дров, или как? Алгоритм? Ты бы статью написал на эту тему, что ли... |
Sanja Alone
Добрый день. Не очень тут удобно редактировать письма, да не суть. Спасибо за подсказку с функцией Opt() При ее помощи удалось найти проблему. Все дело оказалось в кодировке файла скрипта :( Русский язык не правильно воспринимался, поэтому дальше скрипт и не шел. Прошу прощения, что отнял столько времени из-за такой глупости. Цитата:
|
Господа помогите с InputBox, если жмут Cancel или закрывают окно на выходе должен быть путь установки проги по умолчанию, как написать?
Всё разобрался Код:
$answer = InputBox("Путь установки", "Куда исталлировать программу?", @ProgramFilesDir & "\PRMT6\", "", -1, -1,400,300) |
1. Переписал скрипт для Winamp 5.xx: теперь с исп-ем идентификатора окна и внесением н-рых настроек в winamp.ini
2. Добавил скрипты для Everest 2.xx (Ultimate/Corporate/Home) и DVD Identifier 3.x (4.x) P.S. Таблица выбора скриптов на сайте теперь содержит инф. о версии скрипта, а также имеет возможность сортировки (применены xml+xsl+javascript). Если у кого-то не будет работать - напишите мне (указав свой браузер и его версию), т.к. тестировалось все это дело только на IE 6.0. P.P.S. Если у Вас будет желание, то могу разместить эдесь и Ваши скрипты. Ес-но, добавив в таблицу ссылку на автора (пока в этом нет нужды, т.к. автор один - я :) ) |
А для Promt 7 Expert можно сделать ?
|
Softwarez777
Цитата:
|
EgOrus
Расскажи пожалуйста поподробнее про alc120.vbs, что и куда ложить надо и что за объект ActiveX? И про alc120.au3 что-то я пробовал и ни чего у меня не получилось, тут наверное я один такой одаренный :) что ни чего не понимаю, когда просто запускаю start C:\Test\AutoIt3.exe alc120.au3 в трэе появляется значок, а когда при установке даже в VmWare выскакивает ошибка чтения файла alc120.au3, а Alcohol продолжает устанавливаться и вылазиет мастер нового оборудования, и ничего не происходит :(, делаю все как написано в руководстве подскажи плиз что я ни так делаю. |
SlavaS
во1ых, start C:\Test\AutoIt3.exe C:\Test\alc120.au3 (нужно указать путь к скрипту, иначе система ищет его в системных папках) во2ых, какой язык системы у тебя? скрипт au3 дан для русской винды, для англ. нужно переписывать заголовки окон. в3их, добавь в начало скрипта строку AutoItSetOption ("TrayIconDebug", 1) и если при появлении мастера нового оборудования ничего не происходит, наведи на значок "A" в трэе, он тебе покажет на какой строчке скрипт остановился, напиши эту информацию здесь, будем дальше думать (возможно что ты используешь последнюю версию Алкоголика и в нем что-то изменилось, хотя наврятли, пот. мастер нового оборудования это не алкоголиковское окно) Кстати как ты запускаешь установку? Так: msiexec.exe /passive /norestart /i c:\Test\setup.msi По поводу vbs: Сперва чтобы пользовать этим самым объектом ActiveX, нужно зарегить в системе библиотеку AutoItX.dll (есть в дистрибутиве AutoIt) regsvr32 /s c:\Test\AutoItx.dll (предположим что ты dll'ку положил в С:\Test а вообще правильнее ложить ее в папку windows или windows\system32 - $OEM$\$$\system32) после этого положить vbs данный на 1ой странице рядом с распакованным дистром (должен присутствовать файл setup.msi) и запустить его. |
SlavaS
Скрипт установки Alcohol 120% 1.9.5.3105 (установка/регистрация/настройки). Комментарии смотри внутри au3-файла (скрипт подходит для любых Алкоголиков, т.к. исп-ся тихая установка). |
У меня установка и регистрация проходит нормально, я не могу от мастера нового оборудования избавиться :(
|
SlavaS
Проверь чтобы заголовок первого окна мастера нового оборудования совпадал с первой строчкой winwait (...). Проверять установку лучше не на виртуальной машине, а на своей, устанавливаешь если и что-то не так в процессе, удалаешь его. Правишь скрипт, потом опять запускаешь и смотришь как прошла установка, так до победного конца. |
А можно ли с помощью AutoIT определить, какая винда (XP, ХP SP1, XP SP2) стоит на машине?
Идея вот в чём: в зависимости от того, какая винда стоит, подключать соответствующий BootScreen: 1. Переписать файл скрина на винт 2. Редактировать (добавить строчку) файл boot.ini (где-то я видел, как с помощью AutoIT можно редактировать файлы). |
EgOrus
что-то я ни как не могу победить этот мастер нового оборудования, или скрипт не доделанный или у меня XP не тот, но в заголовке окна все совпадает. Я вот думаю почему в твоем скрипте как только появляется мастер нового оборудования и нажимается ENTER? Цитата:
|
SlavaS
Понятно, у меня до устаноки софта применяются твики, в данном случае за НЕпоявление указанного тобой окна отвечает этот твик: [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DriverSearching] "DontSearchWindowsUpdate"=dword:00000001 "DontPromptForWindowsUpdate"=dword:00000001 Поэтому у тебя и не выходит каменный цветок... Можешь либо применить твик, либо просто добавить в скрипт действия по закрытию этого окна. С помощью AU3Info.exe узнать название класса кнопки "нет" и использовать конструкицю типа WinWait ("нужное окно","", 0) Sleep(500) 'Послать в указанное окно ControlClick для кнопки НЕТ (название класса этой кнопки например Button2) ControlClick ("Нужное окно","", "Button2") |
DenchikK
Цитата:
Код:
@OSLang - Returns code denoting OS Language. See Appendix for possible values. Цитата:
Код:
IniDelete ( "filename", "section" [, "key"] ) - Deletes a value from a standard format .ini file. |
Спасибо огромное! Просто с английским у меня дико плохо - вот и юзаю перевод, а он оказывается не полный.
|
|
Sanja Alone
Ты памятник себе воздвигаешь себе нерукотворный? К нему не зарастет народная тропа! Маладес! Хотел бы подмазаться. Но, блин, как же это тяжело думать о других... Ну и типа - by the way! Други, впервые встретился с проблемой, что НЕ МОГУ ввести латинскую "D"! Всегда решал эту проблему "русского языка" Autoit (под WinXP Rus) с помощью ClipPut('D')... Send('+{INS}') или ControlSetText(''...','...','...','D'). Но DSKPROBE.EXE (этот Василий Алибабаевич!) не воспринимает ничего, прямого direct push! |
Sanja Alone
Сань, признавая и уважая... Но как же мы по-разному думаем! Вместо autoit-foxitpdf.au3 у меня в ...\$oem$\$Progs\FoxitReader лежат FoxitReader.exe и foxitpdfreader.reg. В CmdLines.au3 при этом есть запись RunWait ('regedit /s "@ProgramFilesDir@\FoxitReader\foxitpdfreader.reg"') |
bogomolv
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
EgOrus
Спасибо твик помог, все получилось :) |
Sanja Alone
Цитата:
|
Sanja Alone
Цитата:
|
bogomolv
Цитата:
Цитата:
P.S. На будущее: если хочется сказать мне какую-то гадость, то для этого есть e-mail. Иначе можно форум превратить в подобие одной известной fido-конференции, в к-рой от банальных перепалок перешли к межнациональным словесным войнам. Какое-то время это даже было забавно читать, потом стало скучно, а в рез-те эху снесли с бона... |
bogomolv
Цитата:
|
VelDmi
добавь в свой foxitpdfreader.reg (не забудь поменять пути если у тебя другий): Код:
; Foxit PDF Reader Код:
; Foxit PDF Reader Sanja Alone стоит ли из-за таких пустяков ссориться, у каждого свои любимые методы и вкусы, а о вкусах как известно не спорят |
Sanja Alone
Цитата:
О чем спорим? EgOrus Считаю полезным также прописывать регистрацию pdf-файла на FineReader: Код:
;Открыть с помощью FineReader |
bogomolv
не... это не мне это для VelDmi, наверное будет полезно :) я пользуюсь сокращенным вариантом и то лишь при создании WinPE кстати сообщения лучше редактировать, если чего-то забыл дописать, чем плодить неск. подряд :) |
Вложений: 3
Автоматизация подготовки диска к установке системы.
Два скрипта NewDisk.au3 и Unattend.au3: http://forum.oszone.net/attachment.p...ntid=997&stc=1 http://forum.oszone.net/attachment.p...ntid=998&stc=1 http://forum.oszone.net/attachment.p...ntid=999&stc=1 Блин, как сделать, чтобы были рисунки? С их помощью процесс развертывания системы на новом компьютере (друзья, дети, дети друзей и друзья детей) сводится к загрузке с CD Windows PE и исполнению этих самых скриптов. Первым скриптом готовится диск: разбиение диска, его форматирование, развертывание WinPE, создание типовых папок, сбрасывание дистрибутива WinXP. Привязка дистрибутива к машине и пользователю осуществляется вторым скриптом. Им правится unattend.txt: пользователь, настройки экрана, oem-драйвера и т.п. Самое муторное в этой процедуре - правка OemPnPDriversPath. Чтобы максимально облегчить редактирование этого параметра, включил в скрипт дополнительные средства обработки папки $oem$\$1\drivers. Единственное, что приходится делать ручками (вернее, головой), отбирать для дистрибутива заготовки драйверов (включающие при необходимости скрипты автоустановки и подстройки последних). Как уже писал, для этого имею базу таких заготовок, которую по мере обновления драйверов и знакомства с новым железом периодически пополняю. После такой подготовки, занимающей в несложном случае полчаса, остается запустить автоустановку WinXP. Проследив результат и подкорректировав исходники, вручаю "клиенту" работающую машину с "ноутбучным" комплектом ПО для автопереустановки системы, о котором рассказывал раньше. Конечно, установка типовой системы с CD проще и быстрее. Для подобных целей имею собственный "супер-диск" с набором основных драйверов и типовых программ. Но чтобы донастроить установленную таким образом систему требуется квалификация. Вариант с дистрибутивом, полностью привязанным к машине, позволяет самому неподготовленному пользователю самостоятельно поддерживать работоспособность системы самым эффективным способом - периодически вчистую ее переустанавливая. В продолжение разговора об интересных функциях. При отладке работы NewDisk.au3 столкнулся с необходимостью считывать результаты командной строки непосредственно в память: WinPE работает с CD, жесткий диск еще не размечен, создавать виртуальный диск, чтобы выполнить DiskPart.exe /S list.txt > 1.txt, не хотелось. Нашел красивую замену в лице CLIPCOPY.EXE (21Kb), считывающей выходные данные командной строки в clipboard. С помощью этой программульки считываю информацию о присутствующих в системе дисках следующим образом: Код:
RunWait('%Comspec% /C DiskPart.exe /S $iDir$\dpartLIST$i$.txt | CLIPCOPY','',0) Раньше для развертывания WinPE на жестком диске (использую WinPE, в том числе, и при переустановке системы для автоудаления "замусоренных" системных папок) запускал установку Консоли восстановления, которая нужна была только для получения файловой копии загрузочного сектора BOOTSECT.DAT. Добрые люди подсказали, что в BartPE есть плагин, делающий это проще, быстрее и гибче. Позаимствовал оттуда MKBT.EXE (26Kb) и NT2PELDR.EXE (16Kb). Теперь создание загрузчика WinPE выглядит так: Код:
RunWait('@ScriptDir@\mkbt.exe -x -c $ds$ $ds$\Peldr.dat') |
bogomolv
Цитата:
Цитата:
|
bogomolvEgOrus
Действительно огромное спасибо! Не думал, что все так просто. Теперь буду ковырять другие программы в этом направлении, например XnView, который ставится unattend , но не забирает на себя графические форматы файлов. И Light Alloy тоже. |
Получился скриптик для bootscreen (спасибо огромное за разъяснение Sanja Alone (14 страница)):
Код:
If @OSVersion="WIN_XP" then |
VelDmi
Цитата:
DenchikK Цитата:
Код:
If @OSVersion="WIN_XP" then |
Добавил скрипты:
GordianKnot RipPack 0.35.0 No1 Media Fixer Pro 4.4 No1 Video Converter 3.x.x P.S. Для ускорения загрузки страницы со скриптами переписал ее на php (сортировка по прежнему на JavaScript). В связи с этим теперь страница crta такая, а au3 - вот. |
Свежий скрипт
Код:
Opt('ExpandEnvStrings', 1); default = 0 FineReader8.reg - копия нужных настроек из ветки HKCU\Software\ABBYY. Проверял на 677 и 706 версиях. |
|
У меня такая проблемка: не обрабатывается секция if - в любом случае (есть первое окно или нет) -
скрипт продолжает работу (или останавливается при наличии первого окна) со строчек после "Else" В каком месте кривые руки? Где ошибка? Код:
if WinExists ("Заголовок окна", "текст1") then |
biork
У тебя скрипт ждет пока окно не станет активным WinWaitActive("Заголовок окна", "текст2"). Может лучше использовать конструкции типа: Код:
IF WinExists ("Заголовок окна", "текст1") then |
А зачем он ждёт активности второго окна, если появилось и активно первое?
Может я не прав, но по-моему логика скрипта такова, что при наличии первого окна ("Заголовок окна", "текст1") должны выполняться строки после "then", при отсутствии оного или при появлении другого ("Заголовок окна", "текст2") должны выполняться строки после "Else". Если убрать условное выполнение, то каждая ветка скрипта выполняется нормально в своих условиях. Твой вариант с WinActivate попробовал - не помогает. Причём, в моём варианте при наличии первого окна скрипт ждёт на строке ожидания второго окошка, а в твоём - заканчивает работу |
biork
Правильно в примере, кот. предложил я, если ни одно из условий неверно, то продолжаем работу скрипта дальше. В твоем же как ты правильно сказал, если первое условие неправильно, то в любом случае ждем активное окно ("Заголовок окна", "текст2"), если оно по каким-то причинам не появляется, то придется прерывать скрипт вручную. Приведи полный пример своего скрипта. |
Вот весь скрипт с изменениями, как ты и рекомендовал в своём примере.
Часть, которая не хочет работать выделена курсивом Код:
Opt("TrayIconDebug",1) И что толку от продолжения работы скрипта, если дальнейшие действия связаны с кликаньями по окнам которые не появятся, пока не уйдёт текущее? Я понимаю, что проблема выеденного яйца не стоит - можно сделать тихую инсталяшку или ввести серийный номер перед запуском установки с помощью рег-файла и исключить появление этого окна - дело в другом - хочу выяснить можно ли вообще бороться таким образом с "иногда появляющимися" окнами. У меня уже не первый случай когда нужно использовать функцию условного выполнения и всегда с этим проблемы. Что-то я тут не вкуриваю... |
biork
Чтобы понять почему не работает пришлось поставить 3DMark2001, ставится он почти также как 2003, так вот дело в том что, твое условие If WinExists проверяется на стадии копирования файлов и декомпрессии текстур, естественно такого окна нет, и переходим к следующему условию ElseIf WinExists такого окна тоже нет и завершаем скрипт. Нужно добавить перед проверкой условий, ожидание завершения процесса копирования, чтобы в момент проверки условий либо то либо то окно успело появиться, сделать можно по разному например вот так: Код:
ControlClick("InstallShield Wizard", "Start Copying Files", "Button1") |
Вот скрипт для Windows XP Manader
;Видим скрытый текст Opt("WinTitleMatchMode",2) Opt("WinDetectHiddenText",1) ;Уберем все с окна WinMinimizeAll() Sleep(1000) $SF_1 = @ScriptDir & "\xpmanager.exe" $SF_2 = StringLeft(@ProgramFilesDir,2) & '\PROGRA~1\YANICS~1\WinXPM~1\WinXPM~1.exe' Run(@ComSpec & " /c " & "start " & $SF_1 , "", @SW_HIDE) $Title_1 = "WinXP Manager Setup" $Title_2 = "WinXP Manager" WinWaitActive($Title_1) sleep(1000) SEND("{ENTER}") WinWaitActive($Title_2,'The installer will guide you through the steps required to install WinXP Manager on your computer.') sleep(1000) SEND("{ENTER}") WinWaitActive($Title_2,'Select Installation Folder') sleep(1000) controlclick('','','Button5') SEND("{ENTER}") WinWaitActive($Title_2,'Confirm Installation') sleep(1000) SEND("{ENTER}") WinWaitActive($Title_2,'Installation Complete') sleep(1000) SEND("{ENTER}") Run( @ComSpec & " /c " & "start " & $SF_2 , "", @SW_HIDE) sleep(1000) WinActivate("WinXP Manager V4.92.3") ;WinWaitActive('WinXP Manager V4.92.3','UnRegistered...') WinWaitActive('WinXP Manager V4.92.3','Try It') sleep(1000) controlclick('WinXP Manager V4.92.3','','WindowsForms10.BUTTON.app31') WinWaitActive('Purchase and Register WinXP Manager V4.92.3') sleep(1000) ControlSetText( "" , "", 'WindowsForms10.EDIT.app35','XXXX') ControlSetText( "" , "", 'WindowsForms10.EDIT.app34','XXXX') ControlSetText( "" , "", 'WindowsForms10.EDIT.app33','XXXX') ControlSetText( "" , "", 'WindowsForms10.EDIT.app32','XXXX') ControlSetText( "" , "", 'WindowsForms10.EDIT.app31','XXXX') controlclick('','','WindowsForms10.BUTTON.app32') WinWaitActive('Finis','Please restart this software') sleep(1000) SEND("{ENTER}") EXIT |
EgOrus
Ну ты монстр! :) Всё заработало как часики. Оживил несколько заброшенных по подобной причине скриптов. Большущее тебе спасибо! Вопрос на засыпку: зачем таймаут 3 минуты? А вдруг, диск плохо читается или комп 386-ой... я бы убрал этот параметр - пусть ждёт сколько ему надо. |
biork
по поводу 3х минут, вопрос спорный, теоретически это на тот как раз случай если диск нечитается вообще, на разных приводах может быть по разному, где-то начинает читать до посинения бывает и по 10-20 минут и все равно потом сбоит, бывает ошибку выдает, в любом случае скрипт встанет (скорей всего появится окно инстоляра об ошибке установки) и нужно будет вмешиваться. А так он на автомате через 3 минуты пойдет дальше. Вместо 3х можно побольше конечно поставить. |
|
Кто-нибудь помогите заавтоитить Outpost 3.0
Раньше (v. 2.0-2.7) скрипт прекрасно отрабатывался в том месте, где идёт сбор об установленных программах и создаются для них правило. Скрипт корректно дожидался, пока кнопка "Далее" не станет доступной для нажатия. Вот это место Код:
WinWaitActive("Мастер конфигурации") т.е. получается, что недоступная копка каким-то образом нажалась. |
Eralex
3.0 попробовать не довелось, но в 2.7 нормально работает такая конструкция: Код:
... |
Цитата:
|
Вот маленький скриптик. Работает.
Код:
Opt("TrayIconDebug",1) Код:
Opt("TrayIconDebug",1) |
biork
Патаму чта синтаксис :) Код:
Opt('ExpandEnvStrings', 1); default = 0 Чтобы задать рабочий каталог, лучше использовать FileChangeDir ( "path" ) Код:
FileChangeDir("@ScriptDir@\Cpanel") Новый DrWeb433. Установщик остался прежним. И также по-прежнему блокирует silent-установку. :( Зато установщик разукрасили всеми цветами радуги. В результате, он перестал "понимать" ControlClick(...), ControlCommand(...,'Check') и т.д.! Теперь приходится накручивать ControlSend('Внимание!!!',,'Button4','{+}{Enter}'). |
А у меня во в новом инсталяторе DrWeb 2 раза заедало:
1. В месте "Выберите вид установки" (причём иногда только). 2. В месте "Настройки прокси сервера" - при их отсутствии. Нажатие на кнопку отмены мышкой, приводит к продолжени. установки DrWeb, нажатие на неё AutoIT'ом приводит к завершению инсталяции. И там и там вывернулся использованием эмуляции нажатия мышки. Ещё в догонку такая придумка. В установке Dr.Divx, вернее при работе keygen, надо вызывать из каталога с установленной программы регистрационный файл. А вдруг у пользователя прога стоит не на диске C и даже не в Program Files? Как это узнать? И вот что я придумал (главное - работает!). Вкратце так: берём из реестра информацию об установленной программе, и вот мы уже имеем всегда правильный путь. В Dr.Divx чуть сложнее - пути как такого нет, есть путь вместе с .exe файлом. Этот самый .exe файл то мы и отрезаем (функция отрезать строку с конца). Так что можно сделать инсталяторы чуточку более универсальными. |
bogomolv
Мдя... Не очевидно (в справке, в описаниях макро об этом - ни слова...), но факт! А зачем символ @ в конце каждого макро? Опять "синтаксис патаму чта"? И почему осторожней с RunWait? Может надёжнее сам скрипт в нужную папку засунуть и вообще не указывать рабочий каталог? |
Есть прекрасные макро @ComputerName и @IPAddress1 чтобы узнать имя компьютера и его адрес.
А как можно изменить их? Мне нужно задать их не ползая по вкладкам свойств. |
bogomolv
Цитата:
Цитата:
VelDmi Цитата:
|
Люди подскажите как мне с помощью AuotIt поставить Dr.Web 4.33 ( не ставиться командой setup.exe /s) только если по шагово.
|
2Sanja Alone
Скачал у тебя скрипт на установку FoxitReader, к сожалению к новой версии он не подошел, посмотрев скрипт не понял зачем нужны условия на проверку Активности каждого окна? Практически во всех скриптовых языках условия несколько тормозят выполнение кода, легче сразу активировать окно без проверки его активности. Цитата:
Код:
;Установщик FoxitReader v1.3.909.exe |
Всем привет. Вопрос на засыпку. Нужон такой скрипт:
- проверяем является ли диск D: разделом жёсткого диска (существует ли вообще и не является ли сменным или сетевым) - если да, то копируем на него файл - если нет, то - нет. Есть идеи? |
Добавил скрипты:
ICE ECC 2.1 Sateira CD&DVD Burner 2.xx WinImage 8.0 (и 7.0) EgOrus Цитата:
2. Ты используешь странное сочетание функций при ожидании окон: Код:
WinWait("Окно","Текст") Код:
WinWait("Окно","Текст") CTEPBA Скрипт для DrWeb 4.32b - попробуй, может и для 4.33 подойдет. biork Цитата:
Код:
If DriveGetType ('d:\')='Fixed' Then FileCopy ( 'Откуда\файл', 'd:\' ) |
Меня по мылу уже неоднократно спаршивали как предотвратить множественный запуск одного и того же скрипта. Ответ вроде бы где-то на форуме встречался, но приведу его здесь еще раз. Все очень просто - в начало скрипта нужно добавить такую конструкцию:
Код:
If WinExists(@ScriptName) Then Exit |
Sanja Alone
да, ты прав WinWaitActive("Окно","Текст" там абсолютно не нужен, видимо сказалось позднее время и нежелание писать что-то свое, когда есть готовое, отсюда и невнимательность, конечно же везде должно быть просто WinActivate. По поводу скрипта для Sateira CDDVD Burner, можно нескромный вопрос? :) а почему скрипт сделан через работу с окнами, а не ключами установки? /SILENT /DIR="path" /GROUP="folder name" /TASKS="desktop,quicklaunch" (или /NOICONS) |
EgOrus
Цитата:
|
Sanja Alone
Цитата:
Странно, очень давно пользуюсь этой программой, сам постоянно делаю свои инстоляторы, ниразу не было чтобы что-то некоректно установилось. Единственный случай когда такое возможно, это если в скрипте жестко заданы пременные, и то отрабатывается все нормально просто поменять нельзя. АвтоИт же наоборот только расширяет возможности InnoSetup, добавляя возможность использования переменных окружения при указании путей установки (при установке из комстроки требуется указание полновесных путей). Спасибо за скрипт Gknot, я с тоской думал о том моменте когда придется его автоматизировать, жутко не люблю выписывать заголовки с окон, особенно когда их много |
Sanja Alone
Цитата:
Если это не так, то это здорово! Но у меня установка не проходит ни с моими, ни с твоими файлами. Чтобы проверить твой скрипт, разыскал drweb-432b-win-ru.exe. Результат тот же. Только в моем случае в setup.log значится ResultCode=-3, в твоем - ResultCode=-5. Кстати, а почему в твоем скрипте в строке запуска drweb-432b-win-ru.exe нет ключа -f1"путь\setup.iss"? Что, если не указывать на setup.iss явно, он должен "подхватится" автоматом? Давай разбираться! |
Я сделал такой скрипт для Dr.Web 4,33 который работает по действиям, но у меня были проблемы с появление блокнота в конце, вроде я их решил, но еще проверял.
Код:
Run("setup.exe") |
Я написал скрипт для Dr.Web 4.33 через клацанье по окнам, добавил в zip-ку к скрипту для 4.32b. Пока можно юзать и такой вариант.
EgOrus Цитата:
Цитата:
bogomolv Цитата:
Цитата:
Цитата:
Цитата:
|
Sanja Alone
/SAVEINF и /LOADINF очень ограничены по использованию переменных окружения, все строчки из него дублируются обычными ключами. Слегка видоизменил скрипт на Gknot, отменил установку AviSynth если есть более новый в этой же папке, добавил копирование плагинов к нему (к слову сказать - плаги ависинта работают на порядок быстрее VirtualDub'овских). В версии 2.56 появилась русская справка. Людям с толстыми каналами будет проще скачать новую версию GknotRipPack'a чем качать отдельно новый ависинт, тогда из скрипта нужно будет вырезать лишнее и переместить скрипт на установку ависинта. Код:
If WinExists(@ScriptName) Then |
Sanja Alone
Цитата:
|
EgOrus
1. Ошибка Код:
... 2. А зачем Opt('SendKeyDownDelay', 50) если в моем скрипте и так все работало? bogomolv Цитата:
Код:
Global $file='drweb-433-win-ru.exe' |
Sanja Alone
да, все правильно, благодарю, такие вот гадкие ошибки потом всплывают в самый неподходящий момент. Opt('SendKeyDownDelay', 50) пришло в скрипт вместе с шапкой, это у меня в каждом скрипте, особой пользы не несет, также как и вреда. |
Вчера почти весь день убил на активацию AutoCAD 2005. Пришлось извратиться пару раз :)
Никому не надо? Если надо, скажите. |
Цитата:
Отправь мне на skylego@mail.ru |
как написать скрипт для
Цитата:
|
garbals
это все делается батником Код:
1. |
запустил батник не работает всё в политике на своих местах
|
garbals
подробности отправил в ПМ, оффтоп получается |
Я получил на мейл такой вопрос:
Цитата:
1. лоток выдвинут 2. лоток задвинут, но без диска. Я вижу преодоление данной неоднозначности только с пом. начальных условий и дополнительной переменной и предложил такой вариант: Код:
;задаем букву диска при пом. переменной для удобства написания кода В принципе, задача не мирового масштаба, но все же: как ее решить правильно, какие будут мысли? |
Во первых строках огромный сенькс за труды Sanja Alone, bogomolv и другим участникам форума, за их подробные описания и толкования...
Изучив труды набросал для знакомого скриптик для установки Photoshop CS2, может кому пригодится? Sanja Alone - может подредактируешь и выложишь более оптимальный вариант у себя на сайте? регистрациооные данные вбиты в файле Abcpy.ini Код:
[OEM Install] Код:
;предотвращение возможности множественного запуска скрипта добавлено Sanja Alone |
Petya V4sechkin
Цитата:
fox_sly Цитата:
|
Есть такая задача - с помощью AutoIT вставлять пароли в определённое
поле программы. Проблемма в том, что если скрипт .exe раскомпилировать, то легко можно прочитать эти пароли. Понятно, что нет ничего не взламываемого. Но от обычных пытливых юзеров хотелось бы всё-таки пароли скрыть. Можно ли как то осуществить это с помощью AutoIT? |
Гуру от Autoit?
Необходимо установить в переменные SET (для старых DOS задач) в Autoit 2.64 использовал такие строки: IfEqual,AUsername,L4305,Run,WinSet LOG_ST=F32,,hide решил опробовать в Autoit 3.01.02, но WinSet как бы ругается может есть провереное и более надежное решение ? Да и не хочется использовать внешние утилиты. |
DenchikK
Цитата:
AlikPan Цитата:
1. Дописывание пути к 7-zip в переменную Path: Код:
$cur = RegRead ( "HKEY_LOCAL_MACHINE\SYSTEM\Select", "Current" ) Код:
$newsysvarname = 'new' Цитата:
|
Sanja Alone
Спасибо большое, всё получилось. |
В скрипте для Winamp 5.xx исправил косяк с записью параметров в winamp.ini. На момент записи файл был недоступен для этой самой записи :) - добавил проверку.
|
Тут на днях наводил порядок на винте и попался один из первых скриптов для создания Dial Up соединения
- так что может кому пригодится, единственное ограничение на сколько я помню, это то, что дрова для модема уже должны быть установлены и в системе должен быть только один модем, для двух и более прийдется подредактировать :) Код:
;Запуск Мастера подключения к интернету |
Добавил скрипт для Exact Audio Copy v0.95 beta 3
Переписал/дополнил/изменил ВСЕ скрипты на сайте: - "шапки" теперь содержат инфу о версиях приложений на к-рых скрипты тестировались - вписал те самые две строчки для предотвращения возможности множественного запуска скриптов - все-таки решил перейти на вариант TrayIconDebug; TrayIconHide/BlockInput-вариант закомментировал - везде, где нужно приписал макрос @ScriptDir для возможности запуска любого скрипта в неоткомпилированном вар-те без необходимости ложить его рядом с Autoit3.exe - дописал тихие варианты установки там, где это было уместно - еще что-то, сам не помню :) |
Панель инструментов "МОЙ КОМПЬЮТЕР"
Доброго времени суток, уважаемые!
Вот какой вопрос мучает: Все вы знаете что в винде есть панель инструментов быстрого запуска, языковая панель и т.д. Так же сть возможность создание своей панели. Вот что я делаю: 1 кликаю провой кнопкой на панели задач (на ней кнопка ПУСК) 2 снимаю галочку "закрепить панель задач" 3 см 1 --> панель инструментов --> создать панель инструментов 4 В окне "создать панель инструментов" выбераю папку "МОЙ КОМПЬЮТЕР" и жму ОК после чего на панели задачь появляеться панель инструментов "МОЙ КОМПЬЮТЕР" 5 хватаю мышкой область этой панели помеченной вертикальной линией из точек и перетаскиваю до упора вверх (мышка тянет прямоугольник) где эта панель прилипает к верху экрана 6 теперь кликая на этой панели правой кнопкой настраиваю ее - снимаю галочку показать заголовок, ставлю галочки - поверх остальных окон и автоматически уберать с экрана 7 - настраиваю размер панели (так же как и с окнами) 8 возвращаю галочку п.2 это я так подробно описал для того что бы можно было бы посмотреть результат. А ВОТ ТЕПЕРЬ САМ ВОПРОС: как можно сделать эту панель не прописывая в AUTOIT эти все пошаговые действия утраивает 2 варианта 1 - это делаеться с помощью реестра или системных файлов или файлов настройки explorer 2 - может возможно это сделать с помощью GUI еще интересует где находяться настройки "поверх остальных окон", "автоматически уберать с экрана", размер панели и т.д Буду признателен за любые предложения и мысли. Спасибо всем |
В догонку
в догонку Dial_up
как запустить соединение так что бы вышло стондартное окно И ка запустить соединение бе этого окна. |
Jangle
За показ Панели быстрого запуска и поведение Панели Пуск отвечают ключи ;QStart - настройки [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop] "TaskbarWinXP"= ;STARTUP - настройки: автоскрывать, маленькие кнопки и т.д. [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2] "Settings"= Но сочетание параметров, отраженных в этих ключах сложное. Их работоспособность зависит от других настроек Explorer'a. Кроме того, при установке WinXP некторые настроенные параметры будут сбрасываться и забиваться дефолтными настройками. С помощью AutoIt Панель быстрого запуска не настроишь. Фантастика, но если не перетащить хотя бы одну иконку "ручками", то после перезапуска иконки "перетасуются" в нужном и понятном только им порядке. Так происходит, даже если перетаскивать иконки с помощью AutoIt. Самое простое - устанавливать приложения, иконки которых тебе нужны в Панели быстрого запуска, именно в строго заданной последовательности. |
Help!
Как АвтоИтом послать программе установки нажатие клавиши "+" на NumPade. Конструкция Send ("{+}") не работает. Там вообщето меню раскрывающееся (такое же как при выборе компонентов Office). Оно внутри окна и по-отдельности пункты не активизируются, только все меню целиком. Остается два способа: по координатам мышом (но ИМХО не надежно, вдруг на другом компе координаты не совпадут...) и стрелками, но чтобы попасть в подменю нужен этот "+". Иначе слишком много ненужного барахла установится:( Сорри, не могу удалить... Сработала стрелка вправо (как я эту клавишу упустил из виду, ума не приложу...) Еще раз сорри за пустой пост... |
Sanja Alone
Цитата:
Цитата:
я и вызываю. Устаналивает переменные SET в среде WINDOWS |
2 bogomolv - огромное спасибо за информацию!!!
Буду думать :sorry: |
1. Добавил скрипт для Teleport Pro 1.38
2. Исправил ошибку в конвертере crta - неправильно импортировались в реестр параметры типа REG_DWORD (значения интерпретировались как десятичные). Кавычки заменил на дописывание к значению префикса "0x" - теперь все правильно (значения считаются шестнадцатиричными). Эта ошибка также касается следующих скриптов: 7-Zip Agnitum Outpost DivX 5 DivX 6 DVDIdle GordianKnot ImageDupeless ISOBuster O&O Defrag Pragma Если кто-то скачал - извините. Можете скачать еще раз или исправить вручную. Я сам случайно заметил данную недоработку, т.к. большинство DWORD параметров были или 0 или 1, а эти цифры одинаковы во всех системах счисления. |
fox_sly
Практически так же сделано и у меня, только бы я Вам посоветовал заменить Send на ControlSetText - так оно и лучше и надёжнее будет. Как то вот так: Код:
Run("rundll32.exe netshell.dll,StartNCW") |
to DenchikK
С заменой согласен, просто как писал выше это была одна из первых попыток написать скрипт для соединения, насколько я помню там была другая проблема, что не удалось в свое время уйти от Send('{Enter}'), по крайней мере у меня строка типа Код:
WinWaitActive ('Мастер новых подключений','Мастер новых подключений') Код:
WinWaitActive ('Мастер новых подключений','Мастер новых подключений') |
Люди обэясните пожалуйста почему когда с ставлю Alcohol 120% при помощи какого сктрипта:
Код:
AutoItSetOption("TrayIconHide", 1) |
CTEPBA
Рискну предположить причину: Алкоголь ставиться примерно так: msiexec /qn /quiet /i setup.msi DRIVER0=a347bus DRIVER1=a347scsi INSTALLDIR="%programfiles%\Alcohol Soft\" /norestart Потому то и не ставиться у тебя он. Вот мой пример. Поправь его под себя: Код:
crack.exe patch.exe alcohol.reg После распаковки запускается скрипт autoit такого содержания: Код:
Код:
Windows Registry Editor Version 5.00 |
Проблема не в том что он не ставиться все, а вот что когда очередь доходит до него в WPI, то почемуто WPI закрывается а Alcohol продолжает установку и все приложения которые стояли после Alcohol не ставяться так, как уже выгруженно WPI.
|
CTEPBA
Цитата:
DenchikK Цитата:
|
Sanja Alone
Я уже сам догдался теперь использую такой метод установки: Код:
msiexec /qn /quiet /i setup.msi DRIVER0=a347bus DRIVER1=a347scsi INSTALLDIR="%programfiles%\Alcohol Soft\" /norestart |
Добавил скрипт для Agnitum Outpost 3.0 (в архиве 2 скрипта: для версии 2.7 и для 3.0)
CTEPBA Цитата:
Код:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DriverSearching] |
Блин, в сети случайно наткнулся на прогу Almeza Multiset, поставил - вроде делает примерно то-же+создает оболочку для CD (правда не блещущую интерфейсом :) )
Какие будут мнения? (имхо, ручками в AutoIt конечно увереннее - знаешь что не промажешь, но на мой взгляд когда срочно и на скорую руку - прога то, что надо...) |
Sanja Alone
Насчет реестра я не пробовал, а окна это про "новое оборудование" |
В треде твиков задавали вопрос про установку режимов "НИКОГДА" для текущей схемы электропитания.
Когда мне тоже не помогли твики реестра по установке схемы питания "никогда", я сделал это через AutoIt, может корявое решение, но все работает прекрасно: Код:
|
Поделитесь скриптом установки DRWEB 4.33
Заранее спасибо. |
kovdaev
Посмотри здесь HTML код:
http://sanjaalone.h15.ru/au3.php |
Всем доброго здравия!!!
Возникла такая проблемка как с помощью Autoit 2.63 ввести в поле ввода маленькую букву "я" Код:
Send,"я" |
Помогите. Существует проблема с набором русского текста в элементах управления.
Набираются буквы нормально только при русской расскладке клавиатуры. Что мне нужно добавить в начало моего скрипта, чтобы расскладка автоматом переключалась на русскую? Заранее спасибо |
Это будет происходить массово на разных компьютерах с помощью групповых политик. И сочетания клавиш для переключение расскладки у всех разная и язык по умолчанию тоже разный. Вот такая проблема?
|
Доброго времени суток!
ВОт хотел бы попросить помощи в следующем вопросе: как с помощью AutoIt или в сочетании Autoit + Win Api (виндовских DLL- ок) послать скопировать файл на FTP? Попробовал следующее (по - тупому): Цитата:
Спасибо всем |
Спасибо qeraser.
Это действительно то, что нужно. |
Добавил скрипт для ABBYY FineReader 8.0 Professional Edition (в архиве 2 скрипта: для версии 7.0 и для 8.0)
vserd Цитата:
2. По сути. Вот два способа, навскидку: Код:
;239 - ASCII-код символа "я" Код:
;можно исп-ть доп. переменную: Цитата:
|
Да нет проблема вот в чем, например:
Run("Notepad.exe") WinWaitActive("Безымянный - блокнот") Send("Привет") Если при запуске блокнота стоит английская раскладка, то получаются ироглифы. Если при запуске блокнота стоит русская раскладка, то получаются все нормально. Вот мне и надо чтобы после открытия блокнота, какой-нибудь командой поменять расскладку клавиатуры на русскую. И при этом файл должен не в DOS кодировке. |
Добавил скрипты
Compare It 3.8.1660 Rar Key 7.0.1180 a_s_malyshev 1. Можешь прописать в реестр вот такие параметры, например: Код:
;Переключние на Английский по Ctrl+Shift+1 Сочетание клавиш для последовательного переключения языков находится здесь HKEY_CURRENT_USER\Keyboard Layout\Toggle, например: Код:
;левый Ctrl+Shift Цитата:
|
Огромное спасибо!!!
Пробую. С уважением, Александр |
цена MultiSet
"
...Нужно только заплатить 99$ за одну копию или найти крякнутую экзешку для старой версии 1.3 (текущая 1.5) и не иметь никакой возможности что-то подправить при неудовлетворительной работе какого-то "скрипта" программы... " для русскоговорящих пользоватлей, насколькоя я понял регистрация 300руб. смотрим тут: http://www.almeza.com/press/rus/pay/pay.html |
selanec555
Цитата:
|
Цитата:
Ну в принципе скрипты конечно могут и пригодится но только в редких случаях, очень редких. Не знаю как вам а я эту прогу уже использую!!! |
selanec555
- ну а причем тут AutoIt скрипты, создайте тему и там описывайте, все что захочется, а насчет простоты установки полностью согласен с Sanja Alone - так как довольно часто встречаются нестандартные ситуации при установке популярных программ |
Sanja Alone
Цитата:
|
CTEPBA
Цитата:
|
Цитата:
Я к тому что есть решение гораздо удобнее. А решать каждому. |
Sanja Alone
У меня он тоже от туда вноситься, но ничего не пашет. |
Интересная ситуация, может кто сталкивался ?
Кусочек скрипта для регистрации в сети (домен 2000): ... $AUserName=@UserName MsgBox(4096, "Имя пользователя (Login)", $AUserName) ... Работает в WIN2000, WIN XP. Под WIN 98 ни в какую. после регистрации то же срабатывает везде. Ограничения WIN98 или глюка ? |
AlikPan
Цитата:
|
Sanja Alone
Спасибо. А через реестр брать Login - это нормально ? |
Проблема с последним окном в русификаторе для FastStone 2.28
http://www.4ru.info/FastStone.htm Окно нафиг не определяется со всеми вытекающими... Но вот что интересно - я забыл однажды снять из трея застопорившийся скрипт, и запустил его снова - окно видимо определилось, скрипт сработал. Замучился уже, кучу вариантов перепробовал - не хочет работать! |
AlikPan
Цитата:
DenchikK Цитата:
|
DenchikK
а вариант с простым копированием FSViewer.ru в папку программы, не нравится? |
EgOrus
Так то оно так, но просто хочется понять, как заставить работать инсталяху. Спортивная злость, как говорится. Sanja Alone Видать что-то я не так делаю - не получается. |
Подскажите. А можно ли как-нибудь получить список всех имен компьютеров с Dns- суффиксом (например: inf1.scool.ru) в анном домене с помощью AutoIt или же какой-нибудь другой программой например выгрузить в файл. Очень нужно
|
Добавил скрипты
AutoGordianKnot 2.20 FastStone Image Viewer 2.2x (Image Viewer + русификатор + Screen Capture + Photo Resizer) DenchikK Цитата:
a_s_malyshev Цитата:
NET VIEW - эта команда выводит список доступных для совместного использования ресурсов данного компьютера. Kогда используется без параметров, отображает список компьютеров текущего домена или сети. |
Цитата:
Т.е. test.scool.r36.ru <- Что то вроде этого. Они должны выдаваться из системы. А не так чтобы я получил список с помощью команды net View а потом добавлял к элементам списка хвосты (scool.r36.ru). Если какая-нибудь такая команда? |
Здравствуйте. Спасибо, что вы есть :)
Прошу помочь написать простенький (по-видимому) скриптик. Имеется выделенный текст. При нажатии определенного сочетания кнопок этот текст необходимо сохранить в виде отдельного *.txt файла с названием - либо соответствующим первым трем словам первой строки текста; - либо просто порядковым номером (только как в этом случае отследить, какой порядковый номер в папке явл-ся последним) в определенную папку. Очень надеюсь на вашу помощь. |
Здравствуйте. Каким образом можно отловить AutoIt'ом перезагрузку ПК, у меня есть пара скриптов установки софта, дак вот так есть такие дистрибутивы котоые сами перезагрузают комп :( как это отловить/недопустить/корректно обработать? Спасибо.
|
ghosty
Цитата:
Код:
;предотвращение возможности множественного запуска скрипта Цитата:
selanec555 Цитата:
|
|
Помогите написать скрипт нужно
вызвать "Свойства панели задач и меню пуск" проверить стоят ли галочки в определенных местах если нет то установить галочки затем закрыть окно. Заранее спасибо. |
kovdaev
Цитата:
Код:
;заголовок окна |
kovdaev
Двумя страницами ранее уже приходлось писать, что за поведение Панели Пуск отвечает ключ [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2] "Settings"= Настрой Панель под себя, скопируй ключ в reg-файл, а затем воспроизведи... Sanja Alone А зачем в твоем последнем скрипте проверка If ControlCommand ($Title,'','Button1','IsChecked','')=0 Then? |
bogomolv
Цитата:
|
Ответ на вопрос зачем это нужно,
в моем случае пользователи делают что хотят, но когда начинаются проблемы зовут меня при этом, мне удобно когда скажем панель задач не убиралась с экрана, пришел запустил скрипт и все галочки стаят там где надо и не стоят где ненадо, мне кажется это удобно. Спасибо большое за помощь. |
Кто-нибудь знает, как переключить раскладку клавиатуры в En, например? Пробовал API функцию - "LoadKeyboardLayoutA"
$result = DllCall("user32.dll", "long", "LoadKeyboardLayoutA", "str", "00000409", "long", 1) не отрабатывает. Имхо, прежде чем пользоваться SEND, не мешало бы переключить клавиатуру. |
asdfghjk
Цитата:
Цитата:
|
Спасибо за ответ. Вышеописанный метод я действительно не заметил. Однако,
Цитата:
Код:
Run("notepad.exe") Закомментированные reg-файлы (переключение клавиатуры, как ты рекомендовал) не отрабатывают ни в скрипте, ни при запуске руками (точнее, отрабатывают: реестр правят, но на раскладку это не влияет). WinXP RUS SP2. Никаких автопереключателей клавиатуры нет. |
asdfghjk
Цитата:
Цитата:
2. Ты не до конца понял описанный мной метод. Импортируя в реестр вышеуказанные ключи, ты просто включаешь возможность переключения на разные языки с пом. разных комбинаций клавиш. Но ведь для самого переключения нужно еще сделать Send('^+1') /Send('^+2')/, а не просто импортировать reg-файлик :) Похоже я нашел причину твоих проблем - это Блокнот. В Блокноте должен быть указан шрифт с кириллическим набором символов (а по ум. там Terminal - без такового). Вот нужная ветка реестра: Код:
[HKEY_CURRENT_USER\Software\Microsoft\Notepad] |
Sanja Alone
Да, протупил я насчет Send('^+1'). Сейчас работает, только вместо точки "ю" вставляет. Собственно, меня сей вопрос интересует только из любви к искусству. Практической необходимости в нем нет. Хотелось бы все-таки уточнить, у кого-нибудь она (функция Send) просто "тупо посылает указанные символы "? Безо всяких раскладок клавиатуры. Свой Блокнот я проверил - вышеописаные ключи соответствуют. |
asdfghjk
Цитата:
Для примера возьмем твой код: Код:
Run("notepad.exe") Я решил написать это в форуме, т.к. от подобной проблемы не застрахован никто. Дело в том, что на моей рабочей машине стоит WinXP SP1. Я проверил скрипт на VMWare с установленной WinXP SP2 - н-рые кириллические символы заменились кракозяблами. Логически поразмыслив о возможной причине подобного казуса, я пришел к выводу, что все дело в настройках кодовой страницы в самой Винде. Короче говоря, идем по многократно описанному в свете борьбы с кракозяблами пути, и смотрим, чтобы там было такое: Код:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage] |
Sanja Alone
Саша, по поводу [HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage] могу лишь процитировать очень уважаемого специалиста, советы которого ни разу не оказались сомнительными: http://forum.ixbt.com/topic.cgi?id=22:29304:2488#2488. Добавлено, спустя 1 мин. Извиняюсь за прямую ссылку. Посмотри ее копи-пастом... |
bogomolv
Все это понятно, но какая есть альтернатива? К тому же, я не собираюсь смотреть немецкие/японские/китайские и т.п. сайты, а видеть меню того же Алкоголя мне приятнее на русском (а не каракулями или знаками вопроса) :) Из описанных в приведеной тобой теме форума способов решения проблем "кракозяблов" значатся (насколько я понял):
|
Sanja Alone
Я у себя (XP EN) только 1251="c_1251.nls" выставляю, а шрифты даже не импортирую :) Ну и regopts.txt применяю, чтоб не дергаться. У меня, впрочем, очень мало русского софта, а при наличии двух языков я выберу английский. Остальные кодовые страницы были внесены в статью по причине "стандартности" решения и его многократном тиражировании на страницах форума. О побочных эффектах мне известно, как-то Павел Городянский упоминал на страницах форума (его сайт http://ourworld.compuserve.com/homepages/PaulGor/ ), но в реальности, люди которые хотят избежать проблем с отображением кириллицы, могут никогда и не столкнуться с некорректным отображением других языков :) |
Возможно ли сделать так, что бы весь процесс установки программы был невидим?
|
Sanja Alone
Там описан еще один способ. Его и использую. Код:
===== файл unattend.txt ======== |
Vadikan
Цитата:
spol81 Цитата:
bogomolv Цитата:
Код:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer] |
Sanja Alone
В моем unattend.txt стоит вообще-то CustomDefaultThemeFile="C:\WINDOWS\Resources\Themes\Моя тема.theme". Так что, скорее всего, "приводить что-либо к более удобному виду не приходится... |
Здравствуйте!
У меня вопрос общего характера, пишу на autoit'е небольшой авторан, с возможностью выбора простой или тихой установки. Хочу вставить в него красивый прогресс бар. Посмотрел в хелпе, есть 2 функции одна- GUICtrlCreateProgress(рисует сам прогресс бар), другая- GUICtrlSetData(задает значение в процентах прогрессбару). К чему привязать ход процесса в прогресс баре? К месту на жестком диске, не есть гуд, т.к. у меня ntfs и она сразу выделяет место под весь файл. К чему можно еще привязать прогресс бар?? |
Пытался сейчас установить Alcohol 120%, но при запуске установки появляется окошко с ошибкой там написано
RunWait ( @ScriptDir&'\'&$file & ' /qn REBOOT=Suppress' ) Error: Unable to execute the external program. Потом пытался поставить Outpost, но там подобная ошибка в этом месте Run ( @ScriptDir&'\'&$file ) Что я делаю не правильно? |
Всё сам разобрался ;) Просто не заметил что там название файла переменной присваивается.
|
Возникла следующая проблема:
требуется установить программу в папку, которая находится на том же диске, что и Windows. Вопрос: Существует ли какая-нибудь переменная окружения, в которой бы хранилось имя диска, на котором Винда установлена (что-нибудь по аналогии с @ScriptDir или @WindowsDir)? Может есть способ выдрать эту букву из какой-то из этих переменных. Если вопрос покажется дебильным извиняйте, AutoIt'ом пользуюсь второй день |
bogomolv
Цитата:
Получилось... Но только при обычной установке. При установке с помощью WPI тема вроде как есть, но не применяется. То есть в свойствах экрана стоит имя моего файла, но, при этом, тема стоит дефолтная(даже не дефолтная XP, а просто классическая, "необьемная"). Если выбрать ту же тему еще раз и нажать применить - все встает на свои места. Что это и как побороть я пока не пойму. Может можно какой-то скрипт красивый сделать, чтобы вот так щелкать не приходилось? |
DmitryOlenin
нужно еще использовать модифицированный файл uxtheme.dll воспользуйся поиском и никакие авто скрипты тут не нужны, все ставится само собой должно. у меня работает. |
specialist
Я пользовался поиском. Естественно я использую модифицированный uxtheme.dll. Хотя дело не в этом файле. Во-первых, я написал, что при обычной установке(без WPI) тема прекрасно ставится. Во-вторых, все изменение темы заключается в фоновой картинке(которая, кстати, другим путем уже прописана) и, главное, в измененных курсорах. |
a-v-g-u-r
Цитата:
|
DmitryOlenin
Цитата:
Цитата:
All Что-то давно не было обновлений AutoIt! Имевшаяся у меня версия v3.1.1 не позволила красиво реализовать одну функцию графического интерфейса. Полез за обновлениями. Новых официальных версий - нет. В "бетках" последней числится v3.1.1.100. Ее и взял. Сразу нашел новый стиль $LVS_EX_CHECKBOXES для функции GUICtrlCreateListView , реализующий то, что меня интересовало. Но пост о другом - о том, что, скорее всего, ждет нас в новом релизе: Новых функций мало. В основном фиксы, уточнения и новые возможности функций графического интерфейса и работы с внешними библиотеками и объектами. Удивило, что при этом AutoIt3.exe "разросся" в объеме почти в полтора раза. И самое главное - авторы вновь (на моей памяти это происходит уже второй раз) изменили логику сравнений TRUE/FALSE. В итоге сразу перестали работать два моих скрипта. Придется проводить ревизию всей своей коллекции... :( Нашелся и забавный глючок: если оператор #ce стоит в последней строке файла и не отбит "концом строки", это приводит последнюю бету в жуткое замешательство, и скрипт не стартует секунд 30-40, потом все работает, как надо. |
bogomolv
Цитата:
Цитата:
|
Добавил скрипт
DaemonScript 1.6.0 bogomolv Цитата:
Вопросы по WPI Выбор устанавливаемых приложений Цитата:
|
DmitryOlenin
Код:
Run('rundll32 shell32, Control_RunDLL desk.cpl,,') Цитата:
Пропиши в CMDLINES.TXT заветную строчку и подложи к CMDLINES.TXT два файлика. И задавай установку дров и программ, каких хочешь, на какой хочешь стадии и с какой тебе нужно логикой ... Код:
=========CMDLINES.TXT============== |
Sanja Alone
Цитата:
Таких изменений не одно. Скачай AutoIt3.chm и посмотри History. |
Добавил скрипты
Avenger 1.0.5.9 Unlocker 1.7.7 bogomolv Цитата:
|
Sanja Alone
Ключевое слово твоего поста - "любимые". В числе любимых прог, видно, оказалась и WPI. Против этого чувства бессисльны все доводы... И только от нечего делать попридираюсь :) 1) $LVS_EX_CHECKBOXES для функции GUICtrlCreateListView в AutoIt как раз отвечает за галочки в списках; 2) какое такое определение исключает в приведенном мной варианте cmdlines.txt возможность его применения, когда приложения находятся на отдельном DVD? |
bogomolv
Цитата:
В желании приукрасить свой мультибутовый DVD с Виндами, я даже намеревался перейти от консольного bcdw к gui-шному EasyBoot, но неудобсто его настройки (нет прямого редактирования конфиг-файла) и невозможность выбора разных шрифтов (хотя бы для пункта меню и его описания) мне не понравились (конечно, можно к фоновой картинке "пририсовать" описания другим шрифтом, но это лишняя морока). Цитата:
Цитата:
:biggrin: Ну нет у меня желания ваять свой Гуи (то, что это несложно ты и сам знаешь) на АвтоИт-е, имея подходящую (ПОКА !) прогу для интересующих меня задач. Другими словами, я не хочу "изобретать велосипед", даже не взирая на то, что он и не идеален... Если у тебя есть время и желание переплюнуть javascript-овый WPI на АвтоИте - дерзай. Если прога выйдет лучше (возможности АвтоИт-а всецело этому способствуют) и ты представишь ее на суд общественности, а не сделаешь только для себя, то я буду первым, кто перейдет с WPI на твой вариант. |
Sanja Alone
Цитата:
Цитата:
|
Не судите строго помогите с скриптом
Вызываем "Свойства папки" Вкладка "Вид" Проверка вкладок стоит ли отметка в определенных позициях. Заранее спасибо. |
kovdaev
Замени в скрипте, предложенном тебе Sanja Alone в http://forum.oszone.net/showpost.php...&postcount=260, Run ('RunDll32.exe shell32.dll,Options_RunDLL 1') на Run ('RunDll32.exe shell32.dll,Options_RunDLL 0'). $Title у окошек сам догадаешься поменять или тоже "не судить тебя строго"? :) |
Спасибо.
|
Вопрос к уважаемым специалистам от AutoIt:
"Тихая" установка Punto Switcher 2.9. (Специально взял себе попроще для начала) ------------------------------------------------- If WinExists(@ScriptName) Then Exit AutoItSetOption("TrayIconHide", 1) BlockInput (1) Run( "setup_ps29.exe") WinWait("Установка") If WinActive("Установка")=0 Then WinActivate ( "Установка" ) EndIf WinWaitActive("Установка") ControlClick("Установка", "Готово", "Button3") BlockInput (0) ------------------------------------------------- ControlClick("Установка", "Готово", "Button3") - не работает. "Нажатие" батона не происходит. Хотя посылка send("{ENTER}") вместо - "ControlClick" отрабатывает нормально, но не всегда же пользоваться ENTERом. Мануал вроде полистал - выглядит типа всё нормально. В чём дело не пойму, может кто подскажет? Меня тоже "Не судите строго". |
kovdaev
Цитата:
Специально для тебя, как любителя настройки через окошки, дам эту ссылку - тут можешь посмотреть как вызвать интересующие тебя диалоговые окна (и множество других) через rundll32. Facet Цитата:
Цитата:
|
Facet
Punto Switcher можно установить еще "тише": 1) скопировать каталог с установленной программой; 2) воспроизвести сохраненные (со всеми нужными настройками) ветки реестра: HKEY_CURRENT_USER\Software\Punto Switcher\2.8 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache\Punto Switcher 2.8 HKEY_LOCAL_MACHINE\SOFTWARE\Punto Switcher\2.8 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Punto Switcher 2.8 В твоей версии Punto Switcher в конце приведенных веток реестра, очевидно, будет значиться версия 2.9. Автозапуск Punto Switcher прячется в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run |
Спасибо за пояснения Sanja Alone .
Я как раз на этом и застрял при проверке стоит галочка или нет, уже хотел просить совета. Но все равно спасибо. Возможно в дальнейшем разработчик добавит данную функцию в свою программу. |
kovdaev
Выходит, я зря ехидничал? Тогда в порядке извинения: Код:
$hkey='HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' |
Сегодня вечером попробовал все работает.
Можно еще один вопрос по скрипту 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 ) Может автор поправит, Это я к чему, может еще кому пригодиться. Заранее спасибо. |
bogomolv
Цитата:
Я его попросту перепаковал InnoSetupом вместе со всеми ключами реестра и файлами, а установщик InnoSetup отлично поддерживает "тихие" ключи при инсталляции. В порядке "освоения" AutoIt хотелось понять из-за чего не работает вроде бы нормальный скрипт. А за ключи благодарствую - я оказывается "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache\Punto Switcher 2.8" не включил в установщик, сейчас перекомпилирую. Спасибо, также Sanja Alone. То-то мне показалось, что батоны меняют номера. Значит такое действительно может быть. И за поправку "If WinExists(@ScriptName) Then Exit". |
kovdaev
Цитата:
Цитата:
Цитата:
Цитата:
|
Предлогаю вот такое решение вопроса переключения языка клавиатуры.Основанное на функциях WinAPI.
Работать должно начиная с Win98. Код:
Код:
"00000407" Немецкий (стандартный) |
Внес существенные изменения в свой конвертер crta (ConvRegToAu3)
2006-01-31
история изменений |
Добрый день ! У меня такая задача:
Есть несколько программ для загрузки прайс-листов разных поставщиков товара. Необходимо последовательно: запустить каждую из них, получить прайс-лист, закрыть программу, запустить следующую. Как я понял, с помощью AutoIt это сделать вполне реально. Теперь ВОПРОС: можно ли выполнить перечисленные действия так, что бы программы для загрузки прайс-листов запускались НЕВИДИМЫМИ, при условии, что все программы ведут диалог с пользователем (задаются вопросы с вариантами выбора типа "Обновить / Отмена" ??? Если можно, то начну разбираться с AutoIt. Напишите, пожалуйста, в общих чертах как это сделать, или посоветуйте - где об этом можно почитать. Спасибо. |
Добрый день!
Нужна помощь профи. Есть программа, управление которой я хочу автоматизировать при помощи AutoIt. Суть проблемы в том, чтобы узнать какого цвета пиксел в данной точке экрана, черный или белый? Есть ли в AutoIt методы "считывания" цвета пиксела в заданной точке? Заранее спасибо! |
elakt
Цитата:
Цитата:
Цитата:
lemon76 Цитата:
|
Спасибо за ответ! Теперь появились новые вопросы.
1. Запускаем блокнот в невидимом окне: Run("notepad.exe", "", @SW_HIDE) 2. Далее мне нужно дождаться, когда это окно появится. Среди стандартных команд не нашёл ту, которая дожидалась бы появления НЕВИДИМОГО окна, поэтому использовал команду задержки Sleep, что бы дождаться загрузки блокнота. ВОПРОС: можно ли решить эту задачу иначе? 3. После того, как блокнот загрузился, посылаю ему строку текста: ControlSend("Безымянный - Блокнот", "", "Edit1", "Send text to notepad") 4. Затем посылаю команду, которая в меню блокнота выбирает пункт "Выход": WinMenuSelectItem("Безымянный - Блокнот", "", "&Файл", "В&ыход") 5. После этого на экране появляется окно с вопросом "Сохранить изменения? Да/Нет/Отмена" - не смотря на то, что основное окно блокнота невидимо! Ответить на этот вопрос проблем не составляет, но... ВОПРОС: как избежать появления окна с вопросом на экране? То есть что бы оно, как и основное окно, было невидимым? Можно дождаться его появления и "спрятать" командой WinSetState, но в этом случае окно всё равно мелькнет на экране. Как быть? |
Еще вопросы:
1. Нужно дозвониться до провайдера, выполнить некоторые действия, разорвать соединение. Это нужно сделать в НЕВИДИМОМ режиме, то есть без отображения окон. Как это можно сделать? 2. Как проверить, есть ли соединение с интернетом? 3. Как проверить, активно ли соединение с заданым именем? |
elakt
Цитата:
Цитата:
|
Sanja Alone
Цитата:
Цель - автоматизировать этот процесс. Желательно так, что бы все действия были "невидимы" для пользователя и выполнялись в фоне. Блокнот использовался только для примера. Если я правильно понял, то можно "спрятать" главное окно программы, но нельзя избежать отображение диалогов программы с пользователем? |
как с помощью AutoIt сменить раскладку клавиатуры.
а то столкнулся с такой проблемой: у меня язык по умолчанию английский стоит, а винда русская, так вот при написании скрипта управления блокнотом не работают горячии клавиши т.е. сочетания ALT+,CTRL+ и т.д. с русскими символами пока включена английская раскладка. Send("{ALT down}") Send("{ALT up}") Send("{ф down}") Send("{ф up}") вот не работает если не сменить раскладку. как мне быть? |
2All
Помогите разобраться как сделать пренос стороки при использовании функции SplashTextOn: SplashTextOn("", "Длинный текст", 600, 400, -1, -1, 1, "Comic Sans MS", "14", "500") Надо принудительно расставить переносы, т.к. автоматически получается некрасиво. |
__Koval__
А ты не пробЫвал править через реестр, расскладку клавиатуры, или я твою проблему не правильно понял!? |
boss911Конечно не правильно :)
Не работают комбинации спецклавишь с русскими символами пока раскладка английская. |
да и вот еще что не понимаю почему не работает эта команда:
Run("WinRAR.exe", "D:\0NoInstall\WinRar\", @SW_MAXIMIZE) |
elakt
Цитата:
Цитата:
__Koval__ Цитата:
Цитата:
Код:
Run("D:\0NoInstall\WinRar\WinRAR.exe", "", @SW_MAXIMIZE) godoo Цитата:
|
Помогите разобраться с установкой PowerDVD.
Написал скрипт: Код:
run("SETUP.EXE") Помогите! |
Sanja Alone
Цитата:
А можно ли как нибудь по ярлыкам кликать, не используя метод координат? |
__Koval__
Попробуй ALT и стрелки. Например у меня так отлично работает: Send ( '{ALT}' & '{RIGHT}' & '{RIGHT}' & '{RIGHT}' & '{RIGHT}' & '{UP}' & '{ENTER}' & '^+{TAB}' ) - до нужной закладки в меню, а потом ControlClick-ами Sanja Alone Огромное спасибо всё получилось! |
godoo
так ведь не всегда известно точное положение ярлыка вот в чем фишка. |
Sanja Alone
Цитата:
Sanja Alone Цитата:
Спасибо Sanja Alone! |
Пдскажите, можно ли написать такой скрипт, чтобы во время установки программ блокировал клаву, и мог разблокировать только по паролю, или горячим клавишам. А то поставишь сразу нескольким юзверям ставить софт, а они все лезут что-то менять, трогать т.д.
|
Matroskin13
Цитата:
__Koval__ Цитата:
Код:
;каталог с ярлыком Aspirine Цитата:
Цитата:
|
Sanja Alone
Цитата:
Может можно сдеалть, что бы снималась блокировка после определённого, последовательного нажатия епо кнопкм мыши. |
Молодежь! :)
Вы не перепутали эту ветку с горячей линией службы поддержки? Вынь-да-положь им решение! Я о "А мышка блокирутся при BlockInput(1)?" и пр. А слабо проверить? Это займет меньше времени, чем написание поста! All Страсть, как хочется похвалиться! :) Часто нужный параметр прячется в реестре по "адресу", содержащему ID железки или пользователя, ключ безопасности и пр. Для таких случаев в AutoIt есть оператор RegEnumKey(). Однако при этом нужно выстраивать циклы, делать проверки и т.д. Нашел красивое решение подбной задачи, когда мне нужно на стадии CMDLINES узнать будущее разрешение экрана устанавливаемой Windows. Код:
If RunWait('@ComSpec@ /C reg query "HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses" /s | find "DefaultSettings.XResolution" | find "500"','',0)=0 Then $screen=1280 |
Прастите чайника :sorry: (тем более, что не в тему - ну не нашел я тему :-) )
Нада вставить путь из переменной "$path") в поле Edit Делаю примерно так: Код:
ControlFocus ( "title", "text", "Edit") |
Cherepan
Такая лабуда обычно получается, если включена не та раскладка клавиатуры. Например в винде стоит русский, а писать пытаешься по английски. |
VelDmi
Ага... Нада попробовать. Пасиба. Сразу выскакивает другой ворос - как определить, какими кнопками переключает юзер раскладку? Или как сменить раскладку средствами AutoIt? |
|
Sanja Alone
Пасибки, работает. VelDmi После переключения раскладки еще интересней: C^\~ ~ig~i~ Fi~Es\~i~i ~iFTWAE\~EEFA~ ~ ~iFE~i~EAL Send() не хочет нормально работать с латиницей в любой раскладке. С кириллицей проблем нет. |
Cherepan А случаем не в Виртуальном писюке Send() делаешь? У меня такое в Виртуальном, а в обычном - нормально.
|
Scratch56
Не, в винде XP SP2 RUS |
Еще одна интересная особенность - этот глюк не во всех окнах. В некторых все прокатывает на ура.
|
Время: 09:29. |
Время: 09:29.
© OSzone.net 2001-