|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [архив - Часть 2] AutoIt скрипты |
|
[архив - Часть 2] AutoIt скрипты
|
(*.*) Сообщения: 36567 |
Внимание! Тема переведена в архивное состояние Текущая тема http://forum.oszone.net/thread-98914.html (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе c AutoIt. ![]() Сайт программы Русская справка Коллекция AutoIt скриптов от Sanja Alone Коллекция AutoIt скриптов от MSFN (могут быть устаревшие). Справочник по командам rundll32 (команды запуска диалоговых окон и не только...) AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо). Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров. Цитата Vadikan:
|
||
------- Отправлено: 00:02, 05-02-2006 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать spooll,
Цитата:
![]() Попробую скачаю, завтра отпишусь о результатах.. Maza Faka, Цитата:
Dim $PathFile[2][2] = [["c:\test", "c:\1"], ["soccer5.bmp", "soccer9.bmp"]] Dim $Del = 0 For $i = 0 To UBound($PathFile)-1 For $j = 0 To UBound($PathFile)-1 $Del += DeleteFile($PathFile[0][$i], $PathFile[1][$j]) Next Next MsgBox(64, "Result", $Del & " files deleted") Func DeleteFile($path, $delFile) Local $count = 0 $search = FileFindFirstFile($path & "\*.*") While 1 $file = FileFindNextFile($search) If @error Then ExitLoop $Full_file = $path & "\" & $file If FileGetAttrib($Full_file) = "D" Then $count += DeleteFile($Full_file, $delFile) ElseIf $file = $delFile Then $count += FileDelete($Full_file) EndIf WEnd FileClose($search) Return $count EndFunc |
||
------- Отправлено: 23:29, 20-08-2007 | #341 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 11:21, 21-08-2007 | #342 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Maza Faka:
|
|
Отправлено: 11:35, 21-08-2007 | #343 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать spooll
Кажется нашёл твою проблему(ы)... У тебя видимо в настройках автоматом подставляется Организация:, если там пусто (у тех у кого этого не происходит), то кнопка Далее не активна, отсюда могут быть многие зависания. Поэтому нужно проверять это дело... Далее, окно с подтверждением этой информации, и многие другие окна почему то требует активирования чтобы нормально нажать кнопку.. У тебя ожидается окно "Создание нового каталога", как ты уверен что оно появится? а вдруг каталог уже существует? С такими скриптами нужно стараться учитывать все варианты ![]() Вот что у меня получилось: Opt("RunErrorsFatal", 0) Opt("WinTitleMatchMode", -4) $RegRead1CPath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\1C\1Cv7\7.7\1С:Предприятие для SQL", "1CPath") If FileExists($RegRead1CPath) Then Exit $1c_InstallPath = "\\192.168.11.198\Distrib\1s_install" BlockInput(1) Run($1c_InstallPath & "\B770023\Disk1\setup.exe") If @error Then Quit() WinWait("Добро пожаловать", "Добро пожаловать в программу установки 1С:Предприятия.") ControlClick("Добро пожаловать", "Добро пожаловать в программу установки 1С:Предприятия.", "Button1") WinWait("Выбор варианта установки", "Выберите вариант установки программы 1С:Предприятие.") ControlClick("Выбор варианта установки", "Выберите вариант установки программы 1С:Предприятие.", "Button6") $UserInfoInputText = "Введите Ваше имя и название Вашей организации." WinWait("Информация о пользователе", $UserInfoInputText) $GetText_1 = ControlGetText("Информация о пользователе", $UserInfoInputText, "Edit1") $GetText_2 = ControlGetText("Информация о пользователе", $UserInfoInputText, "Edit2") If $GetText_1 = "" Then ControlSetText("Информация о пользователе", $UserInfoInputText, "Edit1", @UserName) If $GetText_2 = "" Then ControlSetText("Информация о пользователе", $UserInfoInputText, "Edit2", @UserName) ControlClick("Информация о пользователе", "Введите Ваше имя и название", "Button2") WinWait("Информация о пользователе", "Верна ли информация для регистрации?") WinActivate("Информация о пользователе", "Верна ли информация для регистрации?") ControlClick("Информация о пользователе", "Верна ли информация для регистрации?", "Button1") WinWait("Выбор каталога для установки", "Программа установки поместит 1С:Предприятие в выбранный каталог.") $GetPathText = ControlGetText("Выбор каталога для установки", _ "Программа установки поместит 1С:Предприятие в выбранный каталог.", "Static2") WinActivate("Выбор каталога для установки", "Программа установки поместит 1С:Предприятие в выбранный каталог.") ControlClick("Выбор каталога для установки", "Программа установки поместит 1С:Предприятие в выбранный каталог.", "Button1") If Not FileExists($GetPathText) Then WinWait("Создание нового каталога", "Вы ввели следующее имя каталога:", 5) If WinExists("Создание нового каталога", "Вы ввели следующее имя каталога:") Then WinActivate("Создание нового каталога", "Вы ввели следующее имя каталога:") ControlClick("Создание нового каталога", "", "Button1") EndIf EndIf WinWait("Выбор программной группы", "Выберите из существующих или") WinActivate("Выбор программной группы", "Выберите из существующих или") ControlClick("Выбор программной группы", "Выберите из существующих или", "Button2") WinWait("Установка 1С:Предприятия", "Программа установки скопировала файлы") WinActivate("Установка 1С:Предприятия", "Программа установки скопировала файлы") ControlClick("Установка 1С:Предприятия", "Программа установки скопировала файлы", "Button2") WinWait("Установка 1С:Предприятия", "Установка программы 1С:Предприятие успешно завершена.") WinActivate("Установка 1С:Предприятия", "Установка программы 1С:Предприятие успешно завершена.") ControlClick("Установка 1С:Предприятия", "Установка программы 1С:Предприятие успешно завершена.", "Button1") Run($1c_InstallPath & "\B770025\Disk1\setup.exe") If @error Then Quit() WinWait("Добро пожаловать", "Добро пожаловать в программу установки") WinActivate("Добро пожаловать", "Добро пожаловать в программу установки") ControlClick("Добро пожаловать", "Добро пожаловать в программу установки", "Button1") WinWait("Список установленных программ", "Из списка найденных на данном компьютере") ControlClick("Список установленных программ", "Из списка найденных на данном компьютере", "Button4") WinWait("Обновление 1С:Предприятия", "При работе с сетевыми версиями") WinActivate("Обновление 1С:Предприятия", "При работе с сетевыми версиями") ControlClick("Обновление 1С:Предприятия", "При работе с сетевыми версиями", "Button2") WinWait("Обновление 1С:Предприятия", "Обновление программы 1С") WinActivate("Обновление 1С:Предприятия", "Обновление программы 1С") ControlClick("Обновление 1С:Предприятия", "Обновление программы 1С", "Button1") BlockInput(0) Run($1c_InstallPath & "\B770025\1C_patch_7725\1Cv77SQL_025_Patch.exe") If @error Then Quit() $PathTitle = "regexp=Патч 1С:Предприятие [0-9]" WinWait($PathTitle, "Вы запустили программу") ControlClick($PathTitle, "Вы запустили программу", "Button1") WinWait("PatchWise Updater", "ОК") WinActivate("PatchWise Updater", "ОК") ControlClick("PatchWise Updater", "ОК", "Button1") WinWait($PathTitle, "&Обновить") ControlClick($PathTitle, "&Обновить", "Button2") Run($1c_InstallPath & "\link.cmd") Quit() Func Quit() BlockInput(0) Exit EndFunc Если я правильно понял, то в этом случае можно вообще не трогать массив: |
------- Отправлено: 15:14, 21-08-2007 | #344 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата Creat0R:
amel27, Цитата amel27:
Приведите ПЛЗ пример с использованием "Redim". |
||
Отправлено: 16:39, 21-08-2007 | #345 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Maza Faka,
Цитата:
Цитата:
|
||
------- Отправлено: 17:37, 21-08-2007 | #346 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 18:42, 21-08-2007 | #347 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать Как сделать, что бы работал $Gui_Event_Close в цикле "For"?
#include <GUIConstants.au3> $gui = GUICreate("My GUI", 300, 200, -1, -1) $Button = GUICtrlCreateButton("Start", 115, 20, 70) $Progress = GUICtrlCreateProgress(10, 60, 280, 15) GUISetState(@SW_SHOW) While 1 $msg = GUIGetMsg() Select Case $msg = $Button While $msg <> $GUI_EVENT_CLOSE $msg = GUIGetMsg() For $i = 10 To 100 Step 10 Sleep(300) GUICtrlSetData($Progress, $i) If $i = 100 Then $i = 0 Next WEnd Case $msg = $Gui_Event_Close ExitLoop EndSelect WEnd |
Отправлено: 19:33, 21-08-2007 | #348 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Maza Faka,
Цитата:
![]() Кстати, amel27 как то у меня спрашивал, откуда у меня такое недоверие к $Array[0], вот именно функция _ArrayDelete() и доказывает, что надёжнее использовать Ubound($Array)-1 ![]() Вот ещё пример с ReDim... #include <Array.au3> Dim $NewArray[1] ;Массив практический пуст... ;Отобразим его... _ArrayDisplay($NewArray) ; А теперь заполним добавляя каждый раз новый элемент For $i = 1 To 10 ReDim $NewArray[ UBound($NewArray) + 1 ] $NewArray[ UBound($NewArray) - 1 ] = "Array Element Data #" & $i Next $NewArray[0] = UBound($NewArray) - 1 ;Отобразим его снова, но уже заполненный ;)... _ArrayDisplay($NewArray) Цитата:
Хотя я бы в данном случае использовал Events (события) метод... #include <GUIConstants.au3> $gui = GUICreate("My GUI", 300, 200, -1, -1) $Button = GUICtrlCreateButton("Start", 115, 20, 70) $Progress = GUICtrlCreateProgress(10, 60, 280, 15) GUISetState(@SW_SHOW) While 1 $msg = GUIGetMsg() Select Case $msg = $Button For $i = 10 To 100 Step 1 If GUIGetMsg() = $GUI_EVENT_CLOSE Then ExitLoop 2 Sleep(30) GUICtrlSetData($Progress, $i) If $i = 100 Then $i = 0 Next Case $msg = $GUI_EVENT_CLOSE ExitLoop EndSelect WEnd |
||
------- Отправлено: 00:27, 22-08-2007 | #349 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать А многие ли знают о том, что скомпилированный скрипт работает почти как полноценный интерпритатор кода AutoIt?
Т.е если мы скомпилируем скрипт, перенесём екзешник на компьютер где нет аутоита, и совершенно в любом файле (текстового характера), впишем код с синтаксисом AutoIt, то примерно следующая строка сможет выполнить этот файл как любой au3 файл где установлен AutoIt: Это же открывает ворота в совсем иное измерение! ![]() Таким образом к примеру, можно даже создавать собственный (примитивный однако) язык программирования ![]() А ещё можно выполнять код программы без вывода критических сообщении (если скрипт выпадает). |
------- Отправлено: 01:09, 22-08-2007 | #350 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? | DreDo | Хочу все знать | 4 | 01-12-2009 18:54 | |
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. | Vadikan | AutoIt | 1543 | 18-01-2009 10:46 | |
[Архив - Часть 1.3] AutoIt скрипты | biork | AutoIt | 503 | 09-06-2007 11:27 | |
[Архив - Часть 1.2] AutoIt скрипты | Dirk Diggler | AutoIt | 505 | 02-12-2006 11:00 | |
[Архив - Часть 1.1] AutoIt скрипты | EgOrus | AutoIt | 335 | 04-02-2006 16:58 |
|