|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.2] AutoIt скрипты |
|
[Архив - Часть 1.2] AutoIt скрипты
|
Ветеран Сообщения: 565 |
Профиль | Сайт | Отправить PM | Цитировать
Внимание! Тема переведена в архивное состояние (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе c AutoIt. |
|
------- Отправлено: 10:47, 10-02-2006 |
Пользователь Сообщения: 73
|
Профиль | Отправить PM | Цитировать Спасибо за ответ, но если можно немного по прозрачнее
опишу мою ситуацию. у меня системные файлы патчатся ресурсами в стиле висты на этапе RunOnceEx, так вот, я хотел бы поменять командный файл, на автоит скрипт. вот команды командного файла ... %WINDIR%\System32\fontext.dll TMP\fontext.dll ZAP.exe %WINDIR%\System32\fontext.dll RESHacker.exe -script "res\fontext\fontext.txt" copy Out\fontext.dll %WINDIR%\System32\fontext.dll copy "%ProgramFiles%\Internet Explorer\IEXPLORE.EXE" TMP\IEXPLORE.EXE ZAP.exe "%ProgramFiles%\Internet Explorer\IEXPLORE.EXE" RESHacker.exe -script "res\iexplore\iexplore.txt" copy Out\iexplore.exe "%ProgramFiles%\Internet Explorer\IEXPLORE.EXE" ... и еще один вопрос. есть ли в автоит какое либо подобие xcopy? чтобы копировались только новые файлы, если есть, то скажите куда смотреть заранее спасибо |
Отправлено: 06:23, 18-10-2006 | #411 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 53
|
Профиль | Отправить PM | Цитировать Всем привет!
Может кто поможет. Есть такая необходтмость устанавливать софт с диска на компы(ежедневно около 20-30 компов).Основной комплект прог для большинства компов одинаков,но достаточно часто возникает нужда поставить стандартный комплект прог с небольшими изменениями (вместо одних прог поставить другие,например вместо windvd power dvd). Написал в AutoIt примитивный скрипт типа: run ("Multemedia\Burn disk\Nero\Nero6608a.exe") WinWaitActive("Nero Burning ROM Помощник установки", "Nero Burning ROM") ControlCommand("Nero Burning ROM Помощник установки", "Nero Burning ROM", "Button2", "Check", "") WinWaitActive("Nero Burning ROM Помощник установки", "Я принимаю все пункты") ControlCommand("Nero Burning ROM Помощник установки", "", "Button8", "Check", "") ControlCommand("Nero Burning ROM Помощник установки", "", "Button2", "Check", "") ControlSetText("Nero Burning ROM Помощник установки", "", "Edit1", "User") ControlSetText("Nero Burning ROM Помощник установки", "", "Static13", "C:\Program files\ahead") ControlSetText("Nero Burning ROM Помощник установки", "", "Edit3", "XXXX-XXXX-XXXX-XXXX-XXXX-XXXX") ControlCommand("Nero Burning ROM Помощник установки", "", "Button2", "Check", "") WinWaitActive("Nero Burning ROM Помощник установки", "Завершить") ControlCommand("Nero Burning ROM Помощник установки", "", "Button11", "unCheck", "") ControlCommand("Nero Burning ROM Помощник установки", "", "Button12", "unCheck", "") ControlCommand("Nero Burning ROM Помощник установки", "", "Button13", "unCheck", "") ControlCommand("Nero Burning ROM Помощник установки", "", "Button3", "Check", "") Заранее благодарен. |
Последний раз редактировалось Sanja Alone, 30-10-2006 в 08:38. Причина: добавление тэга code, замена серийника иксами Отправлено: 13:08, 18-10-2006 | #412 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать xstranger
Цитата:
Цитата:
|
||
Отправлено: 13:09, 18-10-2006 | #413 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Michail77
Цитата:
#NoTrayIcon #Include <GuiConstants.au3> $Title = "Выбор комплектов" If WinExists($Title) Then Exit GuiCreate($Title, 500, 250) GUISetFont(13) GUICtrlCreateLabel("Выбор комплектов", 170, 10) GUISetFont(9) $Complect1 = GUICtrlCreateCheckbox("Комплект 1", 60, 50) $Complect2 = GUICtrlCreateCheckbox("Комплект 2", 60, 90) $Complect3 = GUICtrlCreateCheckbox("Комплект 3", 60, 130) $Next = GUICtrlCreateButton("Next>>", 440, 210, 50) $Cancel = GUICtrlCreateButton("Cancel", 380, 210, 50) GUISetState() While 1 $Msg = GUIGetMsg() Select Case $Msg = $Gui_Event_Close or $Msg = $Cancel Exit Case $Msg = $Next If GUICtrlRead($Complect1) <> 1 and GUICtrlRead($Complect2) <> 1 and GUICtrlRead($Complect3) <> 1 Then GUISetState(@SW_DISABLE) MsgBox(262144+48, "Attention", "Выберите как минимум одну птичку ;-)") GUISetState(@SW_ENABLE) WinActivate($Title, "") ContinueLoop EndIf GUISetState(@SW_HIDE) If GUICtrlRead($Complect1) = $Gui_Checked Then ;Тут должна выполняться установка комплекта № 1 EndIf If GUICtrlRead($Complect2) = $Gui_Checked Then ;Тут должна выполняться установка комплекта № 2 EndIf If GUICtrlRead($Complect3) = $Gui_Checked Then ;Тут должна выполняться установка комплекта № 3 EndIf EndSelect Wend В примере я использовал метод диактивации гуи (Gui) перед выводом MsgBox (GUISetState(@SW_DISABLE)), и полсле нажатия на ОК, гуи активируется (GUISetState(@SW_ENABLE)). Но дело в том, что у меня, по не понятным причинам, после активации гуи, он как бы сворачивается. Почему это происходит, и как это предотвратить? - Я также в примере поставил активацию окна (WinActivate), но в момент активации окно на секунду мигает, хотелось бы достичь идеального способа диактивации и затем активации гуи интерфейса. |
|
------- Отправлено: 15:37, 18-10-2006 | #414 |
Ищу Человека… Сообщения: 420
|
Профиль | Сайт | Отправить PM | Цитировать Michail77
Цитата:
|
|
------- Отправлено: 16:07, 18-10-2006 | #415 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Есть два вопроса (взаимосвязаны между собой):
1) Как можно узнать общий размер всех файлов (в байтах или мб) с определённым расширением, но учитывать файлы в подкаталогах? - Есть функция _FileListToArray, но она не учитывает подкаталоги, может можно её как то улучшить? (там требуется #include <File.au3>). 2) Возможно ли вычислить самый новый файл (взять имя файла и путь к нему в масив), в определённом каталоге - файлы из подкаталогов тоже должны учитываться. |
------- Отправлено: 14:48, 23-10-2006 | #416 |
Пользователь Сообщения: 116
|
Профиль | Отправить PM | Цитировать Мне необходимо отобразить процесс копирования MS Office 2003 на жесткий диск, а затем отобразить сам процес установки через AutoIt.
Сделал это с помощью ProgressOn & ProgressSet... Не устраивает: во первых процегресс-бар при копировании не изменяется, а во время установки приложений прогресс бар переваливает за 100 проценнтов и установка приложения при этом продолжается: ProgressOn ('Копирование MS Office 2003 на жесткий диск','Прогресс','Выполнено',-1,-1,18) $pr=0 AdlibEnable ('progresscopy',300) If Not FileExists($diskC & '\Install\Office 2003 RUS SP2') Then DirCreate($diskC & '\Install\Office 2003 RUS SP2') DirCopy(@ScriptDir & '\', $diskC & '\Install\Office 2003 RUS SP2', 1) ProgressSet(2000 , "Done", "Complete") sleep(500) AdlibDisable () ..... ProgressOn ('Установка MS Office 2003','Прогресс','Выполнено',-1,-1,18) $pr=0 AdlibEnable ('progress',300) .... ProgressSet(1666 , "Done", "Complete") sleep(500) AdlibDisable () .... ;----FUNCTION---------- Func progresscopy() $pr=$pr+1 ProgressSet( $pr, $pr & " процент") EndFunc Func progress() $pr=$pr+1 ProgressSet( $pr, $pr & " процент") EndFunc |
Отправлено: 21:39, 23-10-2006 | #417 |
Ищу Человека… Сообщения: 420
|
Профиль | Сайт | Отправить PM | Цитировать Creat0R
Цитата:
@echo off rem Каталог set DIR=C:\Какой-то каталог\Какой-то подкаталог rem Маска set MASK=*.jpg rem Выделенные слова должны быть в OEM-кодировке for /F "usebackq tokens=3" %%j in (`dir "%DIR%\%MASK%" /s ^| find "байт" ^| find "файлов"`) do (set fsize=%%j) echo Общий размер файлов %MASK% в каталоге "%DIR%" и его подкаталогах = %fsize% байт Цитата:
rem Каталог set DIR=C:\Какой-то каталог\Какой-то подкаталог for /F "usebackq tokens=*" %%j in (`dir "%DIR%" /a:-d /o:-d /t:w /b`) do (set filen=%%j&& goto metka) :metka rem Cамый новый (по времени последнего изменения) файл каталога %DIR% echo Самым новым файлом в каталоге "%DIR%" является "%filen%" sattva Цитата:
|
|||
------- Отправлено: 07:17, 24-10-2006 | #418 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Если только средствами AutoIt, то вот что получилось #include <File.au3> #include <Array.au3> ;Поиск самого нового файла Func _NewestFile ($sPath, $sMask='*') Local $i, $dlist[1]=[0], $blist=_MyFileListToArray ($sPath, $sMask) If $blist[0]=0 Then Return "" For $i=1 To $blist[0] _ArrayAdd ($dlist, FileGetTime ($blist[$i], 0, 1)) Next Return $blist[_ArrayMaxIndex ($dlist, 0, 1)] EndFunc ;Размер файлов с учетом подкаталогов Func _MyDirGetSize ($sPath, $sMask='*') Local $i, $size=0, $blist=_MyFileListToArray ($sPath, $sMask) If $blist[0]=0 Then Return 0 For $i=1 To $blist[0] $size = $size + FileGetSize ($blist[$i]) Next Return $size EndFunc ;Возвращает массив имен файлов с учетом подкаталогов Func _MyFileListToArray ($sPath, $sMask='*') Local $i, $j, $blist, $rlist[1]=[0], $dlist = _DirListToArray ($sPath) _ArrayAdd ($dlist, $sPath) For $i=1 To $dlist [0] +1 $blist = _FileListToArray ($dlist [$i], $sMask, 1) If Not @error Then For $j=1 To $blist [0] _ArrayAdd ($rlist, $dlist[$i] & "\" & $blist [$j]) Next EndIf Next $rlist [0] = UBound ($rlist) - 1 Return $rlist EndFunc ;Возвращает массив структуры подкаталогов Func _DirListToArray ($sPath) Local $i, $j, $rlist[1]=[0], $blist, $alist=_FileListToArray ($sPath, '*', 2) If IsArray ($alist) Then For $i=1 To $alist [0] _ArrayAdd ($rlist, $sPath & "\" & $alist [$i]) $blist = _DirListToArray ($sPath & "\" & $alist [$i]) If $blist[0]>0 Then For $j=1 To $blist [0] _ArrayAdd ($rlist, $blist [$j]) Next EndIf Next EndIf $rlist [0] = UBound ($rlist) - 1 Return $rlist EndFunc |
Отправлено: 10:47, 24-10-2006 | #419 |
Пользователь Сообщения: 52
|
Профиль | Отправить PM | Цитировать Вопрос, где в этом скрипте ошибка???
Run ("d:\1\Winamp 5.24\Winamp 5.24.exe") WinWait("Winamp Setup","License Agreement") If Not WinActive("Winamp Setup","License Agreement")Then WinActivate("Winamp Setup","License Agreement") WinWaitActive("Winamp Setup","License Agreement") Send("{ENTER}") WinWait("Winamp Setup","Choose Components") If Not WinActive("Winamp Setup","Choose Components")Then WinActivate("Winamp Setup","Choose Components") WinWaitActive("Winamp Setup","Choose Components") Send("{ENTER}") WinWait("Winamp Setup","Choose Install Options") If Not WinActive("Winamp Setup","Choose Install Options")Then WinActivate("Winamp Setup","Choose Install Options") WinWaitActive("Winamp Setup","Choose Install Options") Send("{ENTER}") WinWait("Winamp Setup","Choose Install Location") If Not WinActive("Winamp Setup","Choose Install Location")Then WinActivate("Winamp Setup","Choose Install Location") WinWaitActive("Winamp Setup","Choose Install Location") Send("{ENTER}") WinWait("Winamp Setup","Multi-user Settings") If Not WinActive("Winamp Setup","Multi-user Settings")Then WinActivate("Winamp Setup","Multi-user Settings") WinWaitActive("Winamp Setup","Multi-user Settings") Send("{ENTER}") WinWait("Winamp Setup","Internet Connection and Language Settings") If Not WinActive("Winamp Setup","Internet Connection and Language Settings")Then WinActivate("Winamp Setup","Internet Connection and Language Settings") WinWaitActive("Winamp Setup","Internet Connection and Language Settings") Send("{DOWN}{DOWN}{TAB}{TAB}{TAB}{TAB}{ENTER}") WinWait("Winamp Setup","Interface and Skin Selection") If Not WinActive("Winamp Setup","Interface and Skin Selection")Then WinActivate("Winamp Setup","Interface and Skin Selection") WinWaitActive("Winamp Setup","Interface and Skin Selection") Send("{ENTER}") If ProcessExists('winamp.exe') Then ProcessClose('winamp.exe') If ProcessExists('winampa.exe') Then ProcessClose('winampa.exe') If ProcessExists('EmusicClient.exe') Then ProcessClose('EmusicClient.exe') Run ("d:\1\Winamp 5.24\winamp_5.24_rus.exe") WinWait("Установка","Новости от") If Not WinActive("Установка","Новости от")Then WinActivate("Установка","Новости от") WinWaitActive("Установка","Новости от") Send("{ENTER}") WinWait("Установка","Выберите установки програмы") If Not WinActive("Установка","Выберите установки програмы")Then WinActivate("Установка","Выберите установки програмы") WinWaitActive("Установка","Выберите установки програмы") Send("{ENTER}") WinWait("Установка","Пожалуйста") If Not WinActive("Установка","Пожалуйста")Then WinActivate("Установка","Пожалуйста") WinWaitActive("Установка","Пожалуйста") Send("{ENTER}") If ProcessExists('winamp.exe') Then ProcessClose('winamp.exe') If ProcessExists('winampa.exe') Then ProcessClose('winampa.exe') If ProcessExists('EmusicClient.exe') Then ProcessClose('EmusicClient.exe') |
Последний раз редактировалось Sanja Alone, 25-10-2006 в 04:02. Причина: добавление тэга code Отправлено: 12:56, 24-10-2006 | #420 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? | DreDo | Хочу все знать | 4 | 01-12-2009 18:54 | |
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. | Vadikan | AutoIt | 1543 | 18-01-2009 10:46 | |
[архив - Часть 2] AutoIt скрипты | Vadikan | AutoIt | 985 | 21-01-2008 09:58 | |
[Архив - Часть 1.3] AutoIt скрипты | biork | AutoIt | 503 | 09-06-2007 11:27 | |
[Архив - Часть 1.1] AutoIt скрипты | EgOrus | AutoIt | 335 | 04-02-2006 16:58 |
|