|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.3] AutoIt скрипты |
|
[Архив - Часть 1.3] AutoIt скрипты
|
Старожил Сообщения: 250 |
Профиль | Отправить PM | Цитировать
Внимание! Тема переведена в архивное состояние (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе c AutoIt. Помогите пожалуйста. Нужен маленький скриптик для решения некоторых рутинных задачь. Вот что нужно сделать последовательно: 1) в папке DIR1 находим и удаляем файлы в названии которых присутствует text_1 2) в папке DIR2 находим xxx.sif и удаляем строки, в которых присутствует text_1 3) в папке DIR3 находим xxx.inf и добавляем в его секцию [XXX] несколько строчкек (text_2, text_3, ..., text_n) 4) в папке DIR4 находим yyy.inf ищем в его секции [YYY] text_4 и заменяем его на text_5 5) сохраняем все изменения и выводим отчёт о проделанной работе :-) Заранее благодарен. |
|
Отправлено: 05:05, 03-12-2006 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Sancho111
Цитата:
Установи последнюю версию. |
|
------- Отправлено: 11:08, 16-03-2007 | #281 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Sanja Alone
Цитата:
Сделал функцию для установки скорости произношения речи, но не уверен что это правильно: Func _SetSpeachSpeed($Speed) If $Speed < 1 Or $Speed > 21 Then Return SetError(1) Local $SetRate Switch $Speed Case 1 To 11 $SetRate = 4294967280 + ($Speed+5) If $Speed = 11 Then $SetRate = 0 Case 12 To 21 $SetRate = $Speed-11 EndSwitch Return RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Speech\Voices", "DefaultTTSRate", "REG_DWORD", $SetRate) EndFunc Что то никак не соображу как использовать Regshot. |
|
------- Отправлено: 12:40, 16-03-2007 | #282 |
Старожил Сообщения: 205
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
Он сравнит состояния реестра до и после и выдаст изменения. |
|
Отправлено: 13:12, 16-03-2007 | #283 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать VelDmi
Цитата:
У меня вроде нечем так особо задать скорость, до, и после, а потом проверить... т.е нету способной на это программы, сами персонажи вроде не задают скорость, да и в функциях которые я нашел (с офф. форума) нету ничего подобного. |
|
------- Отправлено: 13:39, 16-03-2007 | #284 |
Ищу Человека… Сообщения: 420
|
Профиль | Сайт | Отправить PM | Цитировать Creat0R
Цитата:
|
|
------- Отправлено: 15:23, 16-03-2007 | #285 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Sanja Alone
Цитата:
Цитата:
P.S Кстати на её (функции) основе, можно также в своих скриптах строить подобный ползунок . |
||
------- Отправлено: 15:38, 16-03-2007 | #286 |
Ветеран Сообщения: 565
|
Профиль | Сайт | Отправить PM | Цитировать написал скрипт, который сперва пишет огромный файл, а потом его же считывает, и проверяет, считалось то же, что записалось или нет?
работает, но медленно, видимо, за счет сравнения строк. Как бы ускорить? что писать в файл, значения абсолютно не имеет. $filename = "now" & @MIN & @SEC & "temp" $fil = FileOpen( $filename, 2) $kb = "" For $i = 1 to 1024 Step 1 $kb &= "1" Next $Mb = "" For $i = 1 to 1024 Step 1 $Mb &= $kb & @CRLF Next #region --- GuiBuilder code Start --- ; Script generated by AutoBuilder 0.6 Prototype #include <GuiConstants.au3> GuiCreate("MyGUI", 147, 45,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS)) $btStop = GuiCtrlCreateButton("Stop writing!", 10, 10, 130, 30) GuiSetState() $volume = 0 Do $msg = GuiGetMsg() Select Case ($msg = $GUI_EVENT_CLOSE) or ($msg = $btStop) ExitLoop Case Else ;;; EndSelect $err= FileWriteLine( $fil, $Mb) $volume += 1 Until ($err <> 1) FileClose($fil) GUIDelete() GuiCreate("MyGUI", 147, 45,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS)) $btStop = GuiCtrlCreateButton("verifyin'...", 10, 10, 130, 30) GuiSetState() $fil = FileOpen( $filename,0 ) $verifyfailed = 0 $verified = 0 While 1 $msg = GuiGetMsg() if ($msg = $GUI_EVENT_CLOSE) or ($msg = $btStop) Then ExitLoop for $k = 1 to 1024 $line = FileReadLine($fil) If @error = -1 Then ExitLoop if $line <> $kb then $verifyfailed = 1 SetError(1) EndIf Next If @error = -1 Then ExitLoop $verified += 1 Wend GUIDelete() MsgBox(0,"Verify result", "Volume: " & ($volume) & "Mb" & @CRLF & "Verified:" & $verified & "Mb" & @CRLF & "Verify failed: " & ($verifyfailed = 1)) FileClose($fil) FileDelete($filename) |
------- Отправлено: 08:02, 19-03-2007 | #287 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Dirk Diggler
Цитата:
И нет необходимости строить новый гуи и удалять старый, можно использовать и тот же. А для проверки нажатия кнопки, можно использовать метод реагирования на событие (On Event Mode)... И ещё, зачем SetError(1)? это нигде не используется, или я что-то упустил? Просто быстрее делать: If .. Then ... чем: If ... Then ... EndIf Вот немного переделал пример: $filename = "now" & @MIN & @SEC & "temp" $fil = FileOpen( $filename, 2) $kb = "" For $i = 1 to 1024 Step 1 $kb &= "1" Next $Mb = "" For $i = 1 to 1024 Step 1 $Mb &= $kb & @CRLF Next #include <GuiConstants.au3> GuiCreate("MyGUI", 147, 45,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS)) $btStop = GuiCtrlCreateButton("Stop writing!", 10, 10, 130, 30) GuiSetState() $volume = 0 Do $msg = GuiGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Or $msg = $btStop Opt("GuiOnEventMode", 1) FileClose($fil) $fil = FileOpen( $filename, 0) $verifyfailed = 0 $verified = 0 $ExitLoop = 0 GUICtrlSetData($btStop, "Verifyin'...") GUICtrlSetOnEvent($btStop, "Verifyin") While 1 If $ExitLoop = 1 Then ExitLoop For $k = 1 To 1024 $line = FileReadLine($fil) If @error = -1 Then ExitLoop If $line <> $kb Then $verifyfailed = 1 Next If @error = -1 Then ExitLoop $verified += 1 Wend ExitLoop EndSelect $err = FileWriteLine($fil, $Mb) $volume += 1 Until ($err <> 1) GUIDelete() MsgBox(0,"Verify result", "Volume: " & ($volume) & "Mb" & @CRLF & "Verified: " & $verified & "Mb" & @CRLF & "Verify failed: " & ($verifyfailed = 1)) FileClose($fil) FileDelete($filename) Func Verifyin() $ExitLoop = 1 EndFunc |
|
------- Отправлено: 10:09, 19-03-2007 | #288 |
Ветеран Сообщения: 565
|
Профиль | Сайт | Отправить PM | Цитировать ды вот. эти все потери несущественны по сравнению с теми, что происходят на проверке равенства строк. Вот как бы придумать алгоритм
какой-нть хитрый, ну типа сделать AND по каждому отдельному символу считанной строки и сравнить результат с одим символом? Цитата:
|
|
------- Отправлено: 16:34, 19-03-2007 | #289 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Dirk Diggler
Цитата:
Я если честно не вникаю в затею, почему бы не записать временный массив при создании файла, и потом перечитать весь файл в другой массив, и заием сравнивать оба массива по одному элементу за раз? но опять же, я не вижу смысл всего этого, поэтому немного трудно помочь найти решение . Цитата:
|
||
------- Отправлено: 16:51, 19-03-2007 | #290 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 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.2] AutoIt скрипты | Dirk Diggler | AutoIt | 505 | 02-12-2006 11:00 | |
[Архив - Часть 1.1] AutoIt скрипты | EgOrus | AutoIt | 335 | 04-02-2006 16:58 |
|